首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlserver怎么实现同一个表中多个count查询并且分组并且统计总数

2013-01-07 
sqlserver如何实现同一个表中多个count查询并且分组并且统计总数表结构如下:周次学号迟到旷课请假早退1001

sqlserver如何实现同一个表中多个count查询并且分组并且统计总数
表结构如下:

            周次     学号      迟到      旷课     请假     早退     
                       
           1        001       true     false      false    false         

           1        009       false     true      false    false          

           1        011       true     false      false    false

           1        021       true     false      false    false

           2        002       false     false     false     true

           2        012       false     false     false     true

           2        032       false     false     false     true

           3        004       false     true     false     false

求解怎么用count统计每周迟到旷课早退请假的人数并且和group by 按周次进行分组,生成如下效果的表:

           周次     迟到人数  旷课人数  早退人数  请假人数   总计
            
            1              3            1              0             0               4

            2              0            0              3             0               3



            3              0            1              0             0               1


求解啊, 谢谢 
[解决办法]
select 周次,
       sum(case when 迟到='true' then 1 else 0 end),
       sum(case when 旷课='true' then 1 else 0 end),
       sum(case when 早退='true' then 1 else 0 end)
...
总计=sum(case when 迟到='true' then 1 else 0 end)+sum(case when 旷课='true' then 1 else 0 end)+...
from tb group by 周次
[解决办法]

select 
    [周次],
    [迟到]=sum(case when [迟到]='true' then 1 else 0 end),
    [旷课]=sum(case when [旷课]='true' then 1 else 0 end),
    [请假]=sum(case when [请假]='true' then 1 else 0 end),
    [早退]=sum(case when [早退]='true' then 1 else 0 end)
from [TB]
GROUP BY [周次]

热点排行