Advertisement
KyOOOO

Untitled

Sep 25th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.54 KB | None | 0 0
  1. USE [SyteLine_BI]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PV_SP_CountValueExist] Script Date: 9/26/2019 8:43:28 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --28-8-2019
  9. -- store get giá trị tồn đầu, tồn cuối-- tính giá theo giá bình quân
  10. --PV_SP_CountValueExist 'PVL' , '2019-08-01'
  11. ALTER PROCEDURE [dbo].[PV_SP_CountValueExist]
  12. @site NVARCHAR(10),
  13. @fromdate DATE
  14. AS
  15. DELETE FACT_CountValueExist
  16. WHERE month = MONTH(@fromdate)
  17. AND YEAR = YEAR(@fromdate)
  18. AND site = @site;
  19. INSERT INTO FACT_CountValueExist
  20.  
  21. --SELECT a.month,a.year,a.qtytondau,a.valuetondau,a.site,a.item,a.ngay,a.duan,a.qtytoncuoi,a.valuetoncuoi,a.product_code,a.whse FROM (
  22. SELECT MONTH(@fromdate) month,
  23. YEAR(@fromdate) year,
  24. SUM(ISNULL(qtytondau, 0)) qtytondau,
  25. SUM(ISNULL(valuetondau, 0)) valuetondau,
  26. @site site,
  27. a.item,
  28. '1999-01-01' ngay,
  29. '' duan,
  30. SUM(ISNULL(qtytoncuoi, 0)) qtytoncuoi,
  31. CASE
  32. WHEN (SUM(ISNULL(qtytondau, 0)) + SUM(ISNULL(qtyXuat, 0)) + SUM(ISNULL(qtynhap, 0))) = 0 THEN
  33. 0
  34. ELSE
  35. ((SUM(ISNULL(valuetondau, 0)) + SUM(ISNULL(valuexuat, 0)) + SUM(ISNULL(valuenhap, 0)))
  36. / (SUM(ISNULL(qtytondau, 0)) + SUM(ISNULL(qtyXuat, 0)) + SUM(ISNULL(qtynhap, 0)))
  37. ) * SUM(ISNULL(qtytoncuoi, 0))
  38. END AS valuetoncuoi,
  39. a.product_code,
  40. a.whse,
  41. SUM(ISNULL(a.qtynhap, 0)) qtynhap,
  42. SUM(a.qtyXuat) qtyXuat
  43. FROM
  44. (
  45. SELECT SUM(qty) qtytondau,
  46. SUM(A.value) valuetondau,
  47. 0 qtyXuat,
  48. 0 valuexuat,
  49. 0 qtynhap,
  50. 0 valuenhap,
  51. 0 qtytoncuoi,
  52. 0 valuetoncuoi,
  53. A.item,
  54. A.product_code,
  55. A.whse
  56. FROM
  57. ( -- ĐẦU KÌ
  58. SELECT m.site_ref AS site,
  59. (m.item) item,
  60. SUM(ISNULL(m.qty, 0)) qty,
  61. SUM(ISNULL(qty, 0) * ISNULL(cost, 0)) value,
  62. i.product_code,
  63. m.whse
  64. FROM ERP.SyteLine_Apps.dbo.matltran_mst m WITH (NOLOCK)
  65. JOIN ERP.SyteLine_Apps.dbo.item_mst i WITH (NOLOCK)
  66. ON i.item = m.item
  67. AND m.site_ref = i.site_ref
  68. WHERE CAST(m.trans_date AS DATE) < CAST(DATEADD(MONTH, DATEDIFF(MONTH, 0, @fromdate), 0) AS DATE)
  69. AND m.site_ref = @site
  70. AND m.loc IS NOT NULL
  71. AND m.whse IS NOT NULL
  72. --AND m.qty <> 0
  73. GROUP BY (m.item),
  74. m.site_ref,
  75. i.product_code,
  76. m.whse
  77. ) A
  78. GROUP BY A.item,
  79. A.whse,
  80. A.product_code
  81. UNION ALL
  82. SELECT 0 qtytondau,
  83. 0 valuetondau,
  84. SUM(a.qty) qtyXuat,
  85. SUM(a.value) valuexuat,
  86. 0 qtynhap,
  87. 0 valuenhap,
  88. 0 qtytoncuoi,
  89. 0 valuetoncuoi,
  90. a.item,
  91. product_code,
  92. a.whse
  93. FROM
  94. ( -- xuất
  95. SELECT m.site_ref AS site,
  96. (m.item) item,
  97. SUM(ISNULL(m.qty, 0)) qty,
  98. SUM(ISNULL(qty, 0) * ISNULL(cost, 0)) value,
  99. i.product_code,
  100. m.whse
  101. FROM ERP.SyteLine_Apps.dbo.matltran_mst m WITH (NOLOCK)
  102. JOIN ERP.SyteLine_Apps.dbo.item_mst i WITH (NOLOCK)
  103. ON i.item = m.item
  104. AND m.site_ref = i.site_ref
  105. WHERE MONTH(m.trans_date) = MONTH(@fromdate)
  106. AND YEAR(m.trans_date) = YEAR(@fromdate)
  107. AND m.site_ref = @site
  108. AND m.loc IS NOT NULL
  109. AND m.whse IS NOT NULL
  110. AND m.qty < 0
  111. GROUP BY (m.item),
  112. m.site_ref,
  113. i.product_code,
  114. m.whse
  115. ) a
  116. GROUP BY a.item,
  117. a.whse,
  118. a.product_code
  119. UNION ALL -- nhập
  120. SELECT 0 qtytondau,
  121. 0 valuetondau,
  122. 0 qtyXuat,
  123. 0 valuexuat,
  124. SUM(A.qty) qtynhap,
  125. SUM(A.value) valuenhap,
  126. 0 qtytoncuoi,
  127. 0 valuetoncuoi,
  128. A.item,
  129. product_code,
  130. whse
  131. FROM
  132. ( -- NHẬP
  133. SELECT m.site_ref AS site,
  134. (m.item) item,
  135. SUM(ISNULL(m.qty, 0)) qty,
  136. SUM(ISNULL(qty, 0) * ISNULL(cost, 0)) value,
  137. i.product_code,
  138. m.whse
  139. FROM ERP.SyteLine_Apps.dbo.matltran_mst m WITH (NOLOCK)
  140. JOIN ERP.SyteLine_Apps.dbo.item_mst i WITH (NOLOCK)
  141. ON i.item = m.item
  142. AND m.site_ref = i.site_ref
  143. WHERE MONTH(m.trans_date) = MONTH(@fromdate)
  144. AND YEAR(m.trans_date) = YEAR(@fromdate)
  145. AND m.site_ref = @site
  146. AND m.loc IS NOT NULL
  147. AND m.whse IS NOT NULL
  148. AND m.qty > 0
  149. GROUP BY (m.item),
  150. m.site_ref,
  151. i.product_code,
  152. m.whse
  153. ) A
  154. GROUP BY A.item,
  155. A.whse,
  156. A.product_code
  157. UNION ALL
  158. SELECT 0 qtytondau,
  159. 0 valuetondau,
  160. 0 qtyXuat,
  161. 0 valuexuat,
  162. 0 qtynhap,
  163. 0 valuenhap,
  164. SUM(qty) qtytoncuoi,
  165. SUM(A.value) valuetoncuoi,
  166. A.item,
  167. A.product_code,
  168. A.whse
  169. FROM
  170. (
  171. SELECT m.site_ref AS site,
  172. (m.item) item,
  173. SUM(ISNULL(m.qty, 0)) qty,
  174. SUM(ISNULL(qty, 0) * ISNULL(cost, 0)) value,
  175. i.product_code,
  176. m.whse
  177. FROM ERP.SyteLine_Apps.dbo.matltran_mst m WITH (NOLOCK)
  178. JOIN ERP.SyteLine_Apps.dbo.item_mst i WITH (NOLOCK)
  179. ON i.item = m.item
  180. AND m.site_ref = i.site_ref
  181. WHERE CAST(m.trans_date AS DATE) <= EOMONTH(@fromdate)
  182. AND m.site_ref = @site
  183. AND m.loc IS NOT NULL
  184. AND m.whse IS NOT NULL
  185. AND m.qty <> 0
  186. GROUP BY (m.item),
  187. m.site_ref,
  188. i.product_code,
  189. m.whse
  190. ) A
  191. GROUP BY A.item,
  192. A.whse,
  193. A.product_code
  194. ) a
  195. GROUP BY a.item,
  196. a.whse,
  197. a.product_code;
  198. --)a
  199.  
  200. DELETE FACT_CountValueExist
  201. WHERE Qty = 0
  202. AND QtyEnd = 0
  203. AND QtyNhap = 0
  204. AND QtyXuat = 0;
  205. UPDATE FACT_CountValueExist
  206. SET valueend = 0
  207. WHERE qtyend = 0;
  208.  
  209. DELETE FACT_CountValueExist WHERE MONTH> MONTH(GETDATE()) AND YEAR= YEAR(GETDATE())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement