62,067
社区成员
发帖
与我相关
我的任务
分享
SELECT p_Name,un_Name,lastNum,lastBadNum,ISNULL(inNum,0) inNum,ISNULL(inMoney,0) inMoney,ISNULL(outNum,0) outNum,ISNULL(outMoney,0) outMoney,endNum,endBadNum,ISNULL(lastNum+inNum-outNum-endNum,0) AS balance FROM Products p LEFT JOIN
(
SELECT p_ID,
(SELECT ps_GoodNum FROM ProductStore ps WHERE ps.p_ID=bps.p_ID AND ps.ps_Date=(SELECT MIN(sps.ps_Date) FROM ProductStore sps WHERE sps.ps_Date>='2007-4-1' AND sps.p_ID=ps.p_ID)) lastNum,
(SELECT ps_BadNum FROM ProductStore ps WHERE ps.p_ID=bps.p_ID AND ps.ps_Date=(SELECT MIN(sps.ps_Date) FROM ProductStore sps WHERE sps.ps_Date>='2007-4-1' AND sps.p_ID=ps.p_ID)) lastBadNum,
(SELECT SUM(bp_Num) FROM BuyProduct bp WHERE bp.p_ID=bps.p_ID AND bp_Date>='2007-4-1' AND bp_Date<'2007-5-1') inNum,
(SELECT SUM(bp_TotalPrice) FROM BuyProduct bp WHERE bp.p_ID=bps.p_ID AND bp_Date>='2007-4-1' AND bp_Date<'2007-5-1') inMoney,
(SELECT SUM(sp_Num) FROM SellProduct sp WHERE sp.p_ID=bps.p_ID AND sp_Date>='2007-4-1' AND sp_Date<'2007-5-1') outNum,
(SELECT SUM(sp_TotalPrice) FROM SellProduct sp WHERE sp.p_ID=bps.p_ID AND sp_Date>='2007-4-1' AND sp_Date<'2007-5-1') outMoney,
(SELECT ps_GoodNum FROM ProductStore ps WHERE ps.p_ID=bps.p_ID AND ps.ps_Date=(SELECT MAX(sps.ps_Date) FROM ProductStore sps WHERE sps.ps_Date<'2007-5-1' AND sps.p_ID=ps.p_ID)) endNum,
(SELECT ps_BadNum FROM ProductStore ps WHERE ps.p_ID=bps.p_ID AND ps.ps_Date=(SELECT MAX(sps.ps_Date) FROM ProductStore sps WHERE sps.ps_Date<'2007-5-1' AND sps.p_ID=ps.p_ID)) endBadNum
FROM ProductStore bps
GROUP BY p_ID
) t
ON p.p_ID=t.p_ID
INNER JOIN Unit un
ON p.un_ID=un.un_ID
SELECT A AS A,B AS B ,A-B AS C FROM
(SELECT 2 AS A,1 AS B UNION SELECT 3 AS A,4 AS B) T
(ISNULL(lastNum,0)+ISNull(inNum,0)-ISNULL(outNum,0)-ISNULL(endNum,0)) AS balance