计划日期,计划数量,入库数量
2-1,4000,0
2-3,4500,0
2-5,4500,0
现在入库情况
2-1 3000
2-3 6000
我想要的结果
2-1,4000,3000
2-3,4500,4500
2-5,4500,500
------解决思路----------------------
你太多东西没说清楚了,我就大概写个吧,你可以根据自己的需要修改,或者提出不符合的地方
;WITH CTE AS(
SELECT ISNULL(T1.计划日期,T2.日期)日期,T1.计划数量,T2.入库数量
FROM TB1 T1
FULL JOIN TB2 T2 ON T1.计划日期=T2.日期
)
SELECT T1.日期,T1.计划数量
,CASE WHEN T1.入库数量>T1.计划数量 THEN T1.计划数量
ELSE ISNULL(T1.入库数量,0)
+ CASE WHEN SUM(ISNULL(T2.入库数量,0)-ISNULL(T2.计划数量,0))>0
THEN SUM(ISNULL(T2.入库数量,0)-ISNULL(T2.计划数量,0))
ELSE 0
END
END 入库数量
FROM CTE T1
LEFT JOIN CTE T2 ON T1.日期>T2.日期
WHERE T1.计划数量 IS NOT NULL
GROUP BY T1.日期,T1.计划数量,T1.入库数量