Advertisement
Guest User

Untitled

a guest
May 28th, 2015
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.64 KB | None | 0 0
  1. SELECT /* Строки накладных с различающимися между Кернел и Фокспро строками (оптимизировано) */
  2. b.source,
  3. b.sender_id,
  4. contractor.name AS sender_name,
  5. b.receive_id,
  6. contractor2.name AS receive_name,
  7. b.weight,
  8. b.quantity,
  9. b.doc_date,
  10. b.doc_number,
  11. b.treaty_number,
  12. b.price,
  13. b.goods_id,
  14. goods.name AS goods_name
  15. FROM
  16. ( SELECT /*+ INDEX( write_down write_down_prime_line_id ) */ /* Строки накладных в Кернел */
  17. 'k' AS source,
  18. out_line.send_cnt_id AS sender_id,
  19. out_line.recip_cnt_id AS receive_id,
  20. write_down.pure_weight AS weight,
  21. write_down.quantity AS quantity,
  22. TRUNC( out_line.doc_date ) AS doc_date,
  23. out_line.doc_number AS doc_number,
  24. treaty.doc_number AS treaty_number,
  25. write_down.price AS price,
  26. write_down.gds_id AS goods_id
  27. FROM
  28. out_line,
  29. write_down,
  30. treaty
  31. WHERE
  32. /* Условия соединения */
  33. ( out_line.prime_line_id = write_down.prime_line_id ) AND
  34. ( write_down.supp_treaty_id = treaty.doc_id (+) ) AND
  35. /* Условия фильтрации */
  36. ( out_line.moving_kind_id IN ( 63, 64, 998000000000841, 900000000000281, 998000000001402, 998000000000101 ) ) AND
  37. ( out_line.pure_weight <> 0 ) AND
  38. ( out_line.doc_date >= TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 1, 10 ), 'dd.mm.yyyy') ) AND
  39. ( out_line.doc_date < TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 13, 10 ), 'dd.mm.yyyy') )
  40. UNION ALL
  41. SELECT /* Строки накладных в Фокспро */
  42. 'f',
  43. organization.cnt_id,
  44. organization2.cnt_id,
  45. a.weight,
  46. a.quan,
  47. a.datedoc,
  48. a.numdoc,
  49. a.numdog,
  50. a.price,
  51. a.goods_id
  52. FROM
  53. ( SELECT
  54. foxpro.fb_organization_f2k(nbseller) AS send_org_id,
  55. foxpro.fb_organization_f2k(nbreceive) AS recip_org_id,
  56. weight,
  57. quan,
  58. datedoc,
  59. numdoc,
  60. numdog,
  61. price,
  62. foxpro.fb_goods_f2k(prod) AS goods_id
  63. FROM
  64. foxpro.tmp$_baj_naklad ) a,
  65. organization,
  66. organization organization2
  67. WHERE
  68. /* Условия соединения */
  69. ( a.send_org_id = organization.id ) AND
  70. ( a.recip_org_id = organization2.id ) AND
  71. /* Условия фильтрации */
  72. ( datedoc >= organization.date_start ) AND
  73. ( datedoc < organization.sp_end_date ) AND
  74. ( datedoc >= organization2.date_start ) AND
  75. ( datedoc < organization2.sp_end_date ) AND
  76. ( datedoc >= TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 1, 10 ), 'dd.mm.yyyy' ) ) AND
  77. ( datedoc < TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 13, 10 ), 'dd.mm.yyyy' ) + 1 ) ) b,
  78. contractor,
  79. contractor contractor2,
  80. goods
  81. WHERE
  82. /* Условия соединения */
  83. ( b.sender_id = contractor.id ) AND
  84. ( b.receive_id = contractor2.id ) AND
  85. ( b.goods_id = goods.id ) AND
  86. /* Условие фильтрации */
  87. ( b.doc_number IN ( SELECT /* Номера отличающихся в Кернел и в Фокспро накладных */
  88. doc_number
  89. FROM
  90. /* Записи из Кернел номера накладных которых присутствуют в Фокспро */
  91. ( SELECT /*+ INDEX( write_down write_down_prime_line_id ) */
  92. out_line.send_cnt_id AS sender_id,
  93. out_line.recip_cnt_id AS receive_id,
  94. write_down.pure_weight AS weight,
  95. write_down.quantity AS quantity,
  96. TRUNC( out_line.doc_date ) AS doc_date,
  97. out_line.doc_number AS doc_number,
  98. treaty.doc_number AS treaty_number,
  99. write_down.price AS price,
  100. write_down.gds_id AS goods_id
  101. FROM
  102. out_line,
  103. write_down,
  104. treaty
  105. WHERE
  106. /* Условия соединения */
  107. ( out_line.prime_line_id = write_down.prime_line_id ) AND
  108. ( write_down.supp_treaty_id = treaty.doc_id (+) ) AND
  109. /* Условия фильтрации */
  110. ( out_line.moving_kind_id IN ( 63, 64, 998000000000841, 900000000000281, 998000000001402, 998000000000101 ) ) AND
  111. ( out_line.pure_weight <> 0 ) AND
  112. ( out_line.doc_date >= TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 1, 10 ), 'dd.mm.yyyy' ) ) AND
  113. ( out_line.doc_date < TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 13, 10 ), 'dd.mm.yyyy' ) + 1 ) AND
  114. ( out_line.doc_number IN ( SELECT /* Номера накладных в Фокспро */
  115. numdoc
  116. FROM
  117. foxpro.tmp$_baj_naklad
  118. WHERE
  119. ( datedoc >= TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 1, 10 ), 'dd.mm.yyyy' ) ) AND
  120. ( datedoc < TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 13, 10 ), 'dd.mm.yyyy' ) + 1 ) ) )
  121. MINUS
  122. /* Целиком совпадающие строки накладных Кернел и Фокспро */
  123. ( SELECT /*+ INDEX( write_down write_down_prime_line_id ) */
  124. out_line.send_cnt_id AS sender_id,
  125. out_line.recip_cnt_id AS receive_id,
  126. write_down.pure_weight AS weight,
  127. write_down.quantity AS quantity,
  128. TRUNC( out_line.doc_date ) AS doc_date,
  129. out_line.doc_number AS doc_number,
  130. treaty.doc_number AS treaty_number,
  131. write_down.price AS price,
  132. write_down.gds_id AS goods_id
  133. FROM
  134. out_line,
  135. write_down,
  136. treaty
  137. WHERE
  138. /* Условия соединения */
  139. ( out_line.prime_line_id = write_down.prime_line_id ) AND
  140. ( write_down.supp_treaty_id = treaty.doc_id (+) ) AND
  141. /* Условия фильтрации */
  142. ( out_line.moving_kind_id IN ( 63, 64, 998000000000841, 900000000000281, 998000000001402, 998000000000101 ) ) AND
  143. ( out_line.pure_weight <> 0 ) AND
  144. ( out_line.doc_date >= TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 1, 10 ), 'dd.mm.yyyy') ) AND
  145. ( out_line.doc_date < TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 13, 10 ), 'dd.mm.yyyy') + 1 )
  146. INTERSECT
  147. SELECT
  148. organization.cnt_id AS sender_id,
  149. organization2.cnt_id AS receive_id,
  150. a.weight AS weight,
  151. a.quan AS quantity,
  152. a.datedoc AS doc_date,
  153. a.numdoc AS doc_number,
  154. a.numdog AS treaty_number,
  155. a.price AS price,
  156. a.goods_id AS goods_id
  157. FROM
  158. ( SELECT
  159. foxpro.fb_organization_f2k( nbseller ) AS send_org_id,
  160. foxpro.fb_organization_f2k( nbreceive ) AS recip_org_id,
  161. weight,
  162. quan,
  163. datedoc,
  164. numdoc,
  165. numdog,
  166. price,
  167. foxpro.fb_goods_f2k( prod ) AS goods_id
  168. FROM
  169. foxpro.tmp$_baj_naklad ) a,
  170. organization,
  171. organization organization2
  172. WHERE
  173. /* Условия соединения */
  174. ( a.send_org_id = organization.id ) AND
  175. ( a.recip_org_id = organization2.id ) AND
  176. /* Условия фильтрации */
  177. ( datedoc >= organization.date_start ) AND
  178. ( datedoc < organization.sp_end_date ) AND
  179. ( datedoc >= organization2.date_start ) AND
  180. ( datedoc < organization2.sp_end_date ) AND
  181. ( datedoc >= TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 1, 10 ), 'dd.mm.yyyy' ) ) AND
  182. ( datedoc < TO_DATE( SUBSTR( '01.05.2005..31.05.2005', 13, 10 ), 'dd.mm.yyyy' ) + 1 ) ) ) ) )
  183. ORDER BY
  184. doc_number,
  185. source,
  186. goods_name,
  187. weight,
  188. quantity,
  189. price,
  190. treaty_number
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement