日期:2014-05-18  浏览次数:20531 次

按年月逐级汇总的SQL语句问题
入库表:[source]
字段:
jhdate     进货日期
price     单价
shuliang     数量

出货表:[Send]
字段:
sendtime     出货日期
price     单价
shuliang     数量

怎么按月份统计进货总额:元 营业总额
2006
      11   月份:进货总额:1520元 营业总额:531546元
      12   月份:进货总额:1520元 营业总额:531546元
2007
      1   月份:进货总额:1520元 营业总额:531546元
      2   月份:进货总额:1520元 营业总额:531546元
      3   月份:进货总额:1520元 营业总额:531546元
      4   月份:进货总额:1520元 营业总额:531546元


------解决方案--------------------
Select
A.日期,
A.总额 As 进货总额,
IsNull(B.总额, 0) As 营业总额
From
(Select
Convert(Varchar(7), jhdate, 120) As 日期,
SUM(price * shuliang) As 总额
From
source
Group By
Convert(Varchar(7), jhdate, 120)
) A
Left Join
(Select
Convert(Varchar(7), sendtime, 120) As 日期,
SUM(price * shuliang) As 总额
From
Send
Group By
Convert(Varchar(7), sendtime, 120)
) B
On
A.日期 = B.日期