MyException - 我的异常网
当前位置:我的异常网» Sql Server » 求教~分别(汇总)查询12个月的数据 (改过),该如

求教~分别(汇总)查询12个月的数据 (改过),该如何处理

www.MyException.Cn  网友分享于:2013-12-28  浏览:223次
求教~分别(汇总)查询12个月的数据 (改过)
小弟要查询:
                                1             2           3         ·····       11         12   (月份)
(nameID)name       数据         数据     数据     ·····     数据     数据
(nameID)name       数据         数据     数据     ·····     数据     数据
表:
T1:   peopleID(int)(主键)     times(datetime)       nameID(int)姓名ID   name(姓名)
T2:   listID(int)(主键)       peopelID(int)(T1中的主键)     charge(decimal)花费

T2中会存在多条包含peopleID的数据,   需要通过T1的times来区分出12个月,通过peopleID来关联到T2中,进行汇总(charge)查询出NameID花费的总金额;
T1:                                                                     T2:
peopleID     times             nameID     name               listID       peopelID       charge
    1           2006-01-12             1         张三                 10                   1                 50
    2           2006-01-11             1         张三                 11                   2                 100
    3           2006-01-02             2         李四                 12                   3                 500
    4           2006-02-02             2         李四                 13                   4                 600
需要得到结果:
                1           2       ·······11     12
张三         150    
李四         500       600   ·······11     12
谢谢~~




------解决方案--------------------
select
a.name,
[01]=sum(case datepart(mm,times) when 1 then charge else 0 end),
[02]=sum(case datepart(mm,times) when 2 then charge else 0 end),
[03]=sum(case datepart(mm,times) when 3 then charge else 0 end),
[04]=sum(case datepart(mm,times) when 4 then charge else 0 end),
[05]=sum(case datepart(mm,times) when 5 then charge else 0 end),
[06]=sum(case datepart(mm,times) when 6 then charge else 0 end),
[08]=sum(case datepart(mm,times) when 8 then charge else 0 end),
[09]=sum(case datepart(mm,times) when 9 then charge else 0 end),

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有