+ -
当前位置:首页 → 问答吧 → sql分组合计问题(请教高手)

sql分组合计问题(请教高手)

时间:2011-12-12

来源:互联网

具体的我也说不清,还是举点列子更直观一些。
如下表
营业店 金额 日期  
001 10 2011.01
001 15 2011.01
001 20 2011.02
002 10 2011.01
002 30 2011.02
现在我要从上表得到后如下的形式显示
营业店 件数和 金额和 一月份件数 一月份金额和 二月份件数 二月份金额和
001 3 45 2 25 1 20  
002 2 40 1 10 1 30
怎么取得分组后每个组每个月份的合计值 就不太清楚了,望指教!

作者: liqingyu12   发布时间: 2011-12-12

行列转换。

作者: fredrickhu   发布时间: 2011-12-12

sum(case when .. then ..)

作者: sjcss   发布时间: 2011-12-12

SQL code
select
   营业店,
   count(1) as 件数和,
   sum(金额) as 金额和,
   sum(case when datepart(mm,日期)=1 then 1 else 0 end) as 一月份件数,
   sum(case when datepart(mm,日期)=1 then 金额 else 0 end) as 一月金额和,
   sum(case when datepart(mm,日期)=2 then 1 else 0 end) as 二月份件数,
   sum(case when datepart(mm,日期)=2 then 金额 else 0 end) as 二月金额和
from
  tb
group by
   营业店

作者: fredrickhu   发布时间: 2011-12-12

SQL code
select 营业店,count(*) as 件数和,sum(金额) as 金额和,
   sum(case when datepart(mm,日期)=1 then 1 else 0 end) as [一月份件数],
   sum(case when datepart(mm,日期)=1 then 金额 else 0 end) as [一月金额和],
   sum(case when datepart(mm,日期)=2 then 1 else 0 end) as [二月份件数],
   sum(case when datepart(mm,日期)=2 then 金额 else 0 end) as [二月金额和]
from tb group by 营业店

作者: ssp2009   发布时间: 2011-12-12