Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.99 KB | None | 0 0
  1. CREATE TABLE #tmp
  2. (
  3. CompanyID INT ,
  4. DistributorID INT ,
  5. DistributorLocationID INT ,
  6. SalesOrgID INT ,
  7. SalesOrg_0_ValueID INT ,
  8. SalesOrg_0_ValueCD VARCHAR(15) ,
  9. SalesOrg_0_ValueName NVARCHAR(50) ,
  10. SalesForce_0_Name NVARCHAR(50) ,
  11. SalesOrg_1_ValueID INT ,
  12. SalesOrg_1_ValueCD VARCHAR(15) ,
  13. SalesOrg_1_ValueName NVARCHAR(50) ,
  14. SalesForce_1_Name NVARCHAR(50) ,
  15. SalesOrg_2_ValueID INT ,
  16. SalesOrg_2_ValueCD VARCHAR(15) ,
  17. SalesOrg_2_ValueName NVARCHAR(50) ,
  18. SalesForce_2_Name NVARCHAR(50) ,
  19. SalesOrg_3_ValueID INT ,
  20. SalesOrg_3_ValueCD VARCHAR(15) ,
  21. SalesOrg_3_ValueName NVARCHAR(50) ,
  22. SalesForce_3_Name NVARCHAR(50) ,
  23. SalesOrg_4_ValueID INT ,
  24. SalesOrg_4_ValueCD VARCHAR(15) ,
  25. SalesOrg_4_ValueName NVARCHAR(50) ,
  26. SalesForce_4_Name NVARCHAR(50) ,
  27. SalesOrg_5_ValueID INT ,
  28. SalesOrg_5_ValueCD VARCHAR(15) ,
  29. SalesOrg_5_ValueName NVARCHAR(50) ,
  30. SalesForce_5_Name NVARCHAR(50) ,
  31. SalesOrg_6_ValueID INT ,
  32. SalesOrg_6_ValueCD VARCHAR(15) ,
  33. SalesOrg_6_ValueName NVARCHAR(50) ,
  34. SalesForce_6_Name NVARCHAR(50) ,
  35. SalesOrg_7_ValueID INT ,
  36. SalesOrg_7_ValueCD VARCHAR(15) ,
  37. SalesOrg_7_ValueName NVARCHAR(50) ,
  38. SalesForce_7_Name NVARCHAR(50) ,
  39. SalesOrg_8_ValueID INT ,
  40. SalesOrg_8_ValueCD VARCHAR(15) ,
  41. SalesOrg_8_ValueName NVARCHAR(50) ,
  42. SalesForce_8_Name NVARCHAR(50) ,
  43. SalesOrg_9_ValueID INT ,
  44. SalesOrg_9_ValueCD VARCHAR(15) ,
  45. SalesOrg_9_ValueName NVARCHAR(50) ,
  46. SalesForce_9_Name NVARCHAR(50) ,
  47. ParentID INT ,
  48. ParentLevel INT
  49. );
  50. INSERT INTO #tmp
  51. EXEC dbo.sp_DMS_MDM_GetDistributorWithSalesOrg 3;
  52. SELECT soo.CompanyID ,
  53. DistributorID = soo.BranchID ,
  54. DistributorLocationID = NULL ,
  55. soo.OrderNbr ,
  56. soo.OrderType ,
  57. soo.OrderDate ,
  58. soo.CustomerOrderNbr ,
  59. soo.CustomerID ,
  60. soo.CustomerLocationID ,
  61. SalesRepsID = soo.UsrSalesReps ,
  62. SalesForeID = soo.UsrSalesForce ,
  63. Route = soo.UsrRoute ,
  64. sol.InventoryID ,
  65. sol.UnitPrice ,
  66. sol.LineNbr ,
  67. OrderQty = ISNULL(sol.UsrOrgQty, sol.BaseOrderQty) ,
  68. OpenQty = sol.BaseOpenQty ,
  69. ShipQty = sol.BaseOrderQty ,
  70. sol.OpenAmt ,
  71. sol.CuryExtPrice , -- thanh tien = don gia * soluong
  72. sol.CuryLineAmt ,-- thanh toan = don gia * so luong - chiet khau
  73. sol.IsFree ,
  74. sol.ReasonCode ,
  75. IsDelete = CASE WHEN soo.Cancelled = 1 THEN 1
  76. WHEN ISNULL(soo.UsrIsDispose, 0) = 1 THEN 1
  77. WHEN soo.OrderType = 'CM'
  78. AND ISNULL(soo.UsrIsRevenueDeduction, 0) = 0
  79. THEN 1
  80. END ,
  81. Status = CASE WHEN soo.Status = 'N' THEN N'Mở'
  82. WHEN soo.Status = 'H' THEN N'Chờ'
  83. WHEN soo.Status = 'S' THEN N'Đang giao'
  84. WHEN soo.Status = 'C' THEN N'Hoàn tất'
  85. END ,
  86. Checkbox = CASE WHEN pdaorder.ValidDate = 1 THEN N'Đúng tuyến'
  87. WHEN pdaorder.ValidDate != 1 THEN N'Trái tuyến'
  88. WHEN pdaorder.ValidDate = 1
  89. AND pdaorder.ValidDistance != 1
  90. THEN N'Đúng tuyến, Sai khoảng cách'
  91. WHEN soo.CustomerOrderNbr IS NULL
  92. THEN N'Nhà phân phôi bán'
  93. END ,
  94. soo.RequestDate ,
  95. UsrSourceType = CASE WHEN soo.UsrSourceType = 'RPO'
  96. THEN 'Request Purchase Order'
  97. WHEN soo.UsrSourceType = 'PDA' THEN 'PDA Order'
  98. WHEN soo.UsrSourceType = 'MAN'
  99. THEN 'Manual Order'
  100. WHEN soo.UsrSourceType = 'TMK'
  101. THEN 'Trade Marketing'
  102. END ,
  103. soo.OrderDesc ,
  104. soo.UsrDiscTot ,-- Tong Chiet Khau - Cac Khoan Giam Tru
  105. soo.OrderWeight ,
  106. CuryOrderTotal ,-- Tong Thanh Toan
  107. soship.ShipmentNbr ,
  108. soship.InvoiceNbr ,
  109. soship.InvtRefNbr ,
  110. sos.ShipDate ,
  111. arregister.RefNbr ,
  112. arregister.DocDate ,
  113. inregister.TranDate ,
  114. sol.UsrPromotionID
  115. INTO #tmpAllOrder
  116. FROM dbo.SOOrder soo WITH ( NOLOCK )
  117. JOIN dbo.SOLine sol WITH ( NOLOCK ) ON sol.CompanyID = soo.CompanyID
  118. AND sol.BranchID = soo.BranchID
  119. AND sol.OrderNbr = soo.OrderNbr
  120. AND sol.OrderType = soo.OrderType
  121. LEFT JOIN DMSPDAOrder pdaorder WITH ( NOLOCK ) ON soo.CompanyID = pdaorder.CompanyID
  122. AND soo.BranchID = pdaorder.BranchID
  123. AND soo.CustomerOrderNbr = pdaorder.OrderNbr
  124. LEFT JOIN dbo.SOShipLine sosl WITH ( NOLOCK ) ON sosl.CompanyID = sol.CompanyID
  125. AND sosl.OrigOrderNbr = sol.OrderNbr
  126. AND sosl.OrigOrderType = sol.OrderType
  127. AND sosl.OrigLineNbr = sol.LineNbr
  128. LEFT JOIN dbo.SOShipment sos WITH ( NOLOCK ) ON sos.CompanyID = sosl.CompanyID
  129. AND sos.ShipmentNbr = sosl.ShipmentNbr
  130. LEFT JOIN SOOrderShipment soship WITH ( NOLOCK ) ON sos.CompanyID = soship.CompanyID
  131. AND sos.ShipmentNbr = soship.ShipmentNbr
  132. AND sos.ShipmentType = soship.ShipmentType
  133. LEFT JOIN dbo.ARRegister arregister WITH ( NOLOCK ) ON soship.CompanyID = arregister.CompanyID
  134. AND soship.InvoiceNbr = arregister.RefNbr
  135. AND soship.InvoiceType = arregister.DocType
  136. LEFT JOIN dbo.INRegister inregister WITH ( NOLOCK ) ON inregister.CompanyID = soship.CompanyID
  137. AND inregister.RefNbr = soship.InvoiceNbr
  138. AND inregister.DocType = soship.InvoiceType
  139. WHERE soo.OrderNbr='0364-000005';
  140.  
  141.  
  142.  
  143. SELECT ao.CompanyID ,
  144. ao.DistributorID ,
  145. ao.DistributorLocationID ,
  146. ao.OrderNbr ,
  147. ao.OrderType ,
  148. ao.OrderDate ,
  149. ao.CustomerOrderNbr ,
  150. ao.CustomerID ,
  151. ao.CustomerLocationID ,
  152. ao.SalesRepsID ,
  153. SalesForeID = MAX(ao.SalesForeID) ,
  154. ao.Route ,
  155. ao.InventoryID ,
  156. UnitPrice = MAX(ao.UnitPrice) ,
  157. SKU = CONVERT(DECIMAL(18, 5), 1) ,
  158. TotalOrder = CONVERT(DECIMAL(18, 5), NULL) ,
  159. OrderQty = SUM(CASE WHEN ao.OrderType != 'CM' THEN ao.OrderQty
  160. ELSE 0
  161. END) , --Số lượng đặt
  162. OpenQty = SUM(CASE WHEN ao.OrderType != 'CM' THEN ao.OpenQty
  163. ELSE 0
  164. END) , --Số lượng chưa giao
  165. OrderAmt = SUM(CASE WHEN ao.OrderType != 'CM' THEN ao.CuryLineAmt
  166. ELSE 0
  167. END) , --Doanh số đặt
  168. OpenAmt = SUM(CASE WHEN ao.OrderType != 'CM' THEN ao.OpenAmt
  169. ELSE 0
  170. END) , --Doanh số chưa giao
  171. ExtPrice = SUM(CASE WHEN ao.OrderType != 'CM' THEN ao.CuryExtPrice
  172. ELSE 0
  173. END) ,
  174. Status = MAX(ao.Status) ,
  175. Checkbox = MAX(ao.Checkbox) ,
  176. RequestDate = MAX(ao.RequestDate) ,
  177. UsrSourceType = MAX(ao.UsrSourceType) ,
  178. OrderDesc = MAX(ao.OrderDesc) ,
  179. UsrDiscTot = MAX(ao.UsrDiscTot) ,
  180. OrderWeight = MAX(ao.OrderWeight) ,
  181. CuryOrderTotal = MAX(CuryOrderTotal) ,
  182. ActualOrderQty = SUM(ao.ShipQty) ,
  183. ShipmentNbr = MAX(ao.ShipmentNbr) ,
  184. InvoiceNbr = MAX(ao.InvoiceNbr) ,
  185. InvtRefNbr = MAX(ao.InvtRefNbr) ,
  186. ShipDate = MAX(ao.ShipDate) ,
  187. RefNbr = MAX(ao.RefNbr) ,
  188. DocDate = MAX(ao.DocDate) ,
  189. TranDate = MAX(ao.TranDate) ,
  190. ReasonCode = MAX(ao.ReasonCode) ,
  191. UsrPromotionID = MAX(ao.UsrPromotionID)
  192. INTO #tmpRawData
  193. FROM #tmpAllOrder ao
  194. GROUP BY ao.CompanyID ,
  195. ao.DistributorID ,
  196. ao.DistributorLocationID ,
  197. ao.OrderNbr ,
  198. ao.OrderType ,
  199. ao.OrderDate ,
  200. ao.CustomerOrderNbr ,
  201. ao.CustomerID ,
  202. ao.CustomerLocationID ,
  203. ao.SalesRepsID ,
  204. ao.Route ,
  205. ao.InventoryID;
  206. ---Lấy thông tin distributor
  207. SELECT vd.CompanyID ,
  208. vd.DistributorID ,
  209. vd.DistributorCD ,
  210. vd.DistributorName ,
  211. vd.DistributorFullName ,
  212. vd.AddressLine1
  213. INTO #tmpDistributor
  214. FROM dbo.DMSViewDistributor vd WITH ( NOLOCK );
  215.  
  216. CREATE NONCLUSTERED INDEX [#tmpDistributor_index]
  217. ON #tmpDistributor
  218. (
  219. CompanyID,
  220. DistributorID
  221. );
  222. SELECT vii.CompanyID ,
  223. vii.InventoryID ,
  224. vii.InventoryCD ,
  225. vii.InventoryName ,
  226. vii.InventoryShortName ,
  227. vii.InventoryAbbrName ,
  228. vii.BaseUnit ,
  229. vii.PurchaseUnit ,
  230. vii.HierarchyCD,
  231. vii.HierarchyDescr,
  232. vii.Hierachy0Descr ,
  233. vii.Hierachy1Descr ,
  234. vii.Hierachy2Descr ,
  235. vii.Hierachy3Descr ,
  236. vii.Hierachy4Descr ,
  237. vii.Hierachy5Descr ,
  238. vii.Hierachy6Descr ,
  239. vii.Hierachy7Descr ,
  240. vii.Hierachy8Descr ,
  241. vii.Hierachy9Descr
  242. INTO #tmpInventoryItem
  243. FROM dbo.DMSViewInventoryItem vii WITH ( NOLOCK )
  244. SELECT d.DistributorCD ,
  245. d.DistributorName ,
  246. d.DistributorFullName ,
  247. d.AddressLine1 ,
  248. #tmp.SalesOrgID ,
  249. #tmp.SalesOrg_0_ValueName ,
  250. #tmp.SalesOrg_1_ValueName ,
  251. #tmp.SalesOrg_2_ValueName ,
  252. #tmp.SalesOrg_3_ValueName ,
  253. #tmp.SalesOrg_4_ValueName ,
  254. #tmp.SalesOrg_5_ValueName ,
  255. #tmp.SalesOrg_6_ValueName ,
  256. #tmp.SalesOrg_7_ValueName ,
  257. #tmp.SalesOrg_8_ValueName ,
  258. #tmp.SalesOrg_9_ValueName ,
  259. cl.CustomerCD ,
  260. cl.CustomerName ,
  261. cl.CustomerFullName ,
  262. cl.CustomerPhone1 ,
  263. cl.AddressLine1 ,
  264. cl.Attribute0Descr ,
  265. cl.Attribute1Descr ,
  266. cl.Attribute2Descr ,
  267. cl.Attribute3Descr ,
  268. cl.Attribute4Descr ,
  269. cl.Attribute5Descr ,
  270. cl.Attribute6Descr ,
  271. cl.Attribute7Descr ,
  272. cl.Attribute8Descr ,
  273. cl.Attribute9Descr ,
  274. rd.OrderNbr ,
  275. rd.OrderType ,
  276. rd.OrderDate ,
  277. rd.ActualOrderQty,
  278. OrderMonth = CAST(YEAR(rd.OrderDate) AS NVARCHAR(10))
  279. + RIGHT('0' + CAST(MONTH(rd.OrderDate) AS NVARCHAR(2)), 2) ,
  280. OrderQuater = CAST(YEAR(rd.OrderDate) AS NVARCHAR(10)) + 'Q'
  281. + CAST(DATEPART(qq, rd.OrderDate) AS NVARCHAR(1)) ,
  282. OrderYear = CAST(YEAR(rd.OrderDate) AS NVARCHAR(10)) ,
  283. rd.CustomerOrderNbr ,
  284. rd.Route ,
  285. rd.UnitPrice ,
  286. rd.SKU ,
  287. rd.TotalOrder ,
  288. rd.OrderQty ,
  289. rd.OrderAmt ,
  290. rd.ExtPrice,
  291. rd.OpenQty ,
  292. rd.OpenAmt ,
  293. rd.Status ,
  294. rd.Checkbox ,
  295. rd.RequestDate ,
  296. rd.UsrSourceType ,
  297. rd.OrderDesc ,
  298. rd.UsrDiscTot ,
  299. rd.OrderWeight ,
  300. CuryOrderTotal ,
  301. SalespersonCD = sf.EmployeeCD ,
  302. SalespersonName = sf.Descr ,
  303. SSCD = sf2.EmployeeCD,
  304. SSName = sf2.Descr,
  305. RouteDesc = route.Descr ,
  306. ii.InventoryCD ,
  307. ii.InventoryName ,
  308. ii.InventoryShortName ,
  309. ii.InventoryAbbrName ,
  310. ii.BaseUnit ,
  311. ii.HierarchyCD,
  312. ii.HierarchyDescr,
  313. ii.Hierachy0Descr ,
  314. ii.Hierachy1Descr ,
  315. ii.Hierachy2Descr ,
  316. ii.Hierachy3Descr ,
  317. ii.Hierachy4Descr ,
  318. ii.Hierachy5Descr ,
  319. ii.Hierachy6Descr ,
  320. ii.Hierachy7Descr ,
  321. ii.Hierachy8Descr ,
  322. ii.Hierachy9Descr,
  323.  
  324. rd.ShipmentNbr ,
  325. rd.InvoiceNbr,
  326. rd.InvtRefNbr ,
  327.  
  328. rd.ShipDate,
  329. rd.RefNbr,
  330. rd.DocDate ,
  331. rd.TranDate,
  332. reason.ReasonCodeID,
  333. ReasonDesc = reason.Descr,
  334. PromotionID = disc.PromotionCD,
  335. PromotionName = disc.Descr,
  336. disc.DealID,
  337. disc.SchemeID
  338.  
  339. FROM #tmpRawData rd
  340. LEFT JOIN #tmpDistributor d ON d.CompanyID = rd.CompanyID
  341. AND d.DistributorID = rd.DistributorID
  342. LEFT JOIN #tmp ON #tmp.CompanyID = rd.CompanyID
  343. AND #tmp.DistributorID = rd.DistributorID
  344. AND #tmp.DistributorLocationID = rd.DistributorLocationID
  345. LEFT JOIN dbo.DMSViewCustomerLocation cl WITH ( NOLOCK ) ON cl.CompanyID = rd.CompanyID
  346. AND cl.CustomerID = rd.CustomerID
  347. AND cl.LocationID = rd.CustomerLocationID
  348.  
  349. LEFT JOIN dbo.DMSSalesForce sf ON sf.CompanyID = rd.CompanyID
  350. AND sf.EmployeeID = rd.SalesRepsID
  351.  
  352. LEFT JOIN dbo.DMSSalesForce sf2 ON sf2.CompanyID = rd.CompanyID
  353. AND sf2.EmployeeID = rd.SalesForeID
  354.  
  355. LEFT JOIN #tmpInventoryItem ii ON ii.CompanyID = rd.CompanyID
  356. AND ii.InventoryID = rd.InventoryID
  357. LEFT JOIN dbo.INUnit iu ON iu.CompanyID = ii.CompanyID
  358. AND iu.InventoryID = ii.InventoryID
  359. AND iu.FromUnit = ii.PurchaseUnit
  360. AND iu.ToUnit = ii.BaseUnit
  361. AND iu.UnitMultDiv = 'M'
  362. LEFT JOIN dbo.DMSRoute route ON route.CompanyID = rd.CompanyID
  363. AND route.RouteCD = rd.Route
  364. LEFT JOIN dbo.ReasonCode reason ON rd.CompanyID = reason.CompanyID
  365. AND rd.ReasonCode = reason.ReasonCodeID
  366. LEFT JOIN DMSPRODiscount disc ON disc.CompanyID = rd.CompanyID
  367. AND disc.PromotionID= rd.UsrPromotionID
  368. DROP TABLE #tmpRawData
  369. DROP TABLE #tmpAllOrder
  370. DROP TABLE #tmpDistributor
  371. DROP TABLE #tmpInventoryItem
  372. DROP TABLE #tmp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement