


將11,12,13號的入庫單資料(輔助資訊完全相同的)相加到表C中的轉入一列,并根據上期結存計算出庫存。如何來寫SQL!新手。。。麻煩大神寫的清楚點
uj5u.com熱心網友回復:
沒看明白啥意思uj5u.com熱心網友回復:
SELECT A.產品名稱,A.顏色,A.批號,ISNULL(D.TOTAL,0) AS 轉入,A.上期庫存,A.上期庫存-ISNULL(D.TOTAL,0) AS 結存
FROM C
LEFT JOIN
(SELECT 產品名稱,顏色,批號,
SUM(CASE WHEN 退料=1 THEN -1*數量 ELSE 數量 END) AS TOTAL
FROM B JOIN
A ON B.入庫單號=A.入庫單號
WHERE 入庫時間 BETWEEN '2019-10-11' AND '2019-10-13'
AND 審批=1
GROUP BY 產品名稱,顏色,批號) AS D ON A.產品名稱=C.產品名稱 AND A.顏色=C.顏色 AND A.批號=C.批號
uj5u.com熱心網友回復:
我是看明白了一點點。似乎是要做一個月結存報表。
期初結存
uj5u.com熱心網友回復:
1.單獨設計一張庫存表,以后會方便很多2.采用存盤程序,在入庫單審核的時候,同時將資料插入到庫存表中。
uj5u.com熱心網友回復:
糾正一下,是動態結存報表。還有本期發生
期末結存
按賬期查詢截止日作為結存匯總的基點。
uj5u.com熱心網友回復:
C表就是庫存表,怎么寫update 陳述句?或者寫成存盤程序,怎么寫uj5u.com熱心網友回復:
上次#2寫的有些問題,你看看下面的SELECT后的結存對不對,對的話再用后一個UPDATE
SELECT C.產品名稱,C.顏色,C.批號,ISNULL(D.TOTAL,0) AS 轉入,C.上期庫存,C.上期庫存+ISNULL(D.TOTAL,0) AS 結存
FROM C
LEFT JOIN
(SELECT 產品名稱,顏色,批號,
SUM(CASE WHEN 退料=1 THEN -1*數量 ELSE 數量 END) AS TOTAL
FROM B JOIN
A ON B.入庫單號=A.入庫單號
WHERE 入庫時間 BETWEEN '2019-10-11' AND '2019-10-13'
AND 審批=1
GROUP BY 產品名稱,顏色,批號) AS D ON C.產品名稱=D.產品名稱 AND C.顏色=D.顏色 AND C.批號=D.批號
UPDATE C
SET 結存=C.上期庫存+ISNULL(D.TOTAL,0)
FROM C
LEFT JOIN
(SELECT 產品名稱,顏色,批號,
SUM(CASE WHEN 退料=1 THEN -1*數量 ELSE 數量 END) AS TOTAL
FROM B JOIN
A ON B.入庫單號=A.入庫單號
WHERE 入庫時間 BETWEEN '2019-10-11' AND '2019-10-13'
AND 審批=1
GROUP BY 產品名稱,顏色,批號) AS D ON C.產品名稱=D.產品名稱 AND C.顏色=D.顏色 AND C.批號=D.批號
uj5u.com熱心網友回復:
update lgbzbal c set c.f_ir_qty1=d.f_qty1 from
( select a.f_wh_no, a.f_ven_no, b.f_ord_no,b.f_item_no,b.f_col_no,b.f_fx_no,b.f_ph,sum(case when a.f_tl=1 then -1*f_qty1 else f_qty1 end) as f_qty1
from ivrcvmas a,ivrcvdtl b where a.f_rcv_no=b.f_rcv_no and f_wh_no ='010' and f_rcv_date>='20191001'
group by a.f_wh_no, a.f_ven_no, f_ord_no,f_item_no,f_col_no,f_fx_no,f_ph ) d
where c.period='201910'
and c.f_wh_no=d.f_wh_no
and c.f_ord_no=d.f_ord_no
and c.f_item_no=d.f_item_no
and c.f_col_no= d.f_col_no
and c.f_ven_no=d.f_ven_no
and c.f_fx_no=d.f_fx_no
and c.f_ph=d.f_ph

幫忙看一下,我這段代碼為什么報錯
uj5u.com熱心網友回復:
試試下面的
update lgbzbal set f_ir_qty1=d.f_qty1 from
( select a.f_wh_no, a.f_ven_no, b.f_ord_no,b.f_item_no,b.f_col_no,b.f_fx_no,b.f_ph,sum(case when a.f_tl=1 then -1*f_qty1 else f_qty1 end) as f_qty1
from ivrcvmas a,ivrcvdtl b where a.f_rcv_no=b.f_rcv_no and f_wh_no ='010' and f_rcv_date>='20191001'
group by a.f_wh_no, a.f_ven_no, f_ord_no,f_item_no,f_col_no,f_fx_no,f_ph ) d,lgbzbal c
where c.period='201910'
and c.f_wh_no=d.f_wh_no
and c.f_ord_no=d.f_ord_no
and c.f_item_no=d.f_item_no
and c.f_col_no= d.f_col_no
and c.f_ven_no=d.f_ven_no
and c.f_fx_no=d.f_fx_no
and c.f_ph=d.f_ph
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/129478.html
標籤:應用實例
上一篇:大佬幫我看下
