日期:2014-05-17  浏览次数:20715 次

sql server2000 分组查询问题
表结构如下
machine inout num
  a 0 100
  a 0 100
  a 1 100
  a 1 100
  b 0 150
  b 0 150
  b 1 150
  b 1 150

........................
想以machine字段分组查询,查询结果如下
  a 200(inout=0之和) 200(inout=1之和)
  b 300(inout=0之和) 300(inout=1之和)
如果记录a的inout字段全是0或1,应能返回如下形式,例如上表中a的inout字段全是0,
  a 400(inout=0之和) 0(inout=1之和)

------解决方案--------------------
SQL code

select 
machine,
sum(case when inout=0 then num else 0 end) inout_0,
sum(inout*num) inout_1
from 表
group by machine