表结构如下:            周次     学号      迟到      旷课     请假     早退     
                       
           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
求解啊, 谢谢 

解决方案 »

  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 周次
      

  2.   


    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 [周次]