+ -
当前位置:首页 → 问答吧 → 求助:比较头疼的一个SQL数据汇总问题。

求助:比较头疼的一个SQL数据汇总问题。

时间:2010-12-13

来源:互联网

下面为原数据表table1内容(name:姓名,oid:产品编号,rmb:金额,datetime:日期)
-----------------------------------------
name   oid    rmb       datetime
张三  A01    100       2010-1-1
张三  A01    100       2010-2-1
张三  A05    100       2010-2-1
李四  A02    100       2010-1-1
李四  A02    100       2010-2-1
王五  A03    100       2010-1-1
-----------------------------------------

现在需要通过SQL语句实现如下结果
-----------------------------------------
name   oid    total       m1        m2         m3       ......
张三  A01    200       100       100        0          ......
张三  A05    100       0           100        0          ......
李四  A02    200       100       100        0          ......
王五  A03    100       100       0            0          ......
-----------------------------------------

通过 select name,oid,sum(rmb) from table1 group by name,oid 仅能够汇总 name   oid    total 三项的结果。
问题是如何能够在一句SQL语句里实现上面结果12个月横排的汇总数据,求教了。
如果无法实现的话,能否给一个其它方法的参考?比如存储过程或视图的解决方法?
谢谢。

作者: alixixi   发布时间: 2010-12-13

试了一下,目前只能这样解决了
select name,oid,sum(rmb),(select sum(rmb) from table1 as b where b.aid=table1.aid and datediff(m,datetime,'2010-1-1')) as m1 from table1 group by name,oid

如果有效率更高的方法,大家帮提供一下。

作者: alixixi   发布时间: 2010-12-13