当前位置: 代码迷 >> ASP.NET >> 这样的查询语句要如何写
  详细解决方案

这样的查询语句要如何写

热度:3775   发布时间:2013-02-25 00:00:00.0
这样的查询语句要怎么写?
这是一个记录学员缺勤和未交作业的记录表,类型W表示未交作业,A表示缺勤,
其中学员编号是不确定
  自动标示 班级编号 上课编号 学员编号 类型
SELECT SerID, CaCaID, CaSerID, UserSerID, TypeID FROM SX_SchAnnal
  1 51 1 101001 A
  2 51 1 101002 A  
  3 51 2 101003 W
  4 51 2 101003 A
  5 51 3 101001 W
  6 51 3 101002 W
  7 51 4 101003 W
  8 51 4 101003 A
  9 51 5 101003 A
。。。。。。。。。。。。。。。。。。。。。。。。。。。
要求查询出如下格式的数据
学员编号 未交作业总次数 缺勤总次数
101001 ? ?
101002 ? ?
。。。。。。。。。。。。。。。。。。
希望有高手能给个查询语句,谢谢

------解决方案--------------------------------------------------------
上面错了。case里的A没有加单引号,应该是(没测试):
SQL code
select sum(case TypeID when 'A' then 1 else 0 end) as '缺勤总次数',count(*)-sum(case TypeID when 'A' then 1 else 0 end) as '未交作业数',UserSerID as '学号' from SX_SchAnnalgroup by UserSerID
------解决方案--------------------------------------------------------
SQL code
SELECT UserSerID,       SUM( CASE WHEN TypeID = 'A' THEN                       1 ELSE 0 END),  --缺勤总次数        SUM( CASE WHEN TypeID = 'W' THEN                       1 ELSE 0 END)   --未交作业FROM  SX_SchAnnalGROUP BY UserSerID
  相关解决方案