"2008-07-01" "a" "5" "5" "5"
"2008-07-01" "b" "73" "72" "63"
"2008-07-01" "d" "5" "2" "2"
"2008-07-01" "d" "551" "548" "538"
"2008-07-02" "a" "2" "2" "2"
"2008-07-02" "b" "19" "19" "19"
"2008-07-02" "c" "1" "1" "1"
"2008-07-02" "d" "224" "224" "189"a,b是一组, g1
c,d是一组, g2想分组统计成一下结果2008-07-01 g1 x y z
2008-07-01 g2 x y z
2008-07-02 g1 x y z
2008-07-02 g2 x y z
怎么做?

解决方案 »

  1.   

    x y z 代表一些数字,不用管它.
      

  2.   

    列:dt,name,col1,col2,col3select convert(varchar(10),dt,120),
    case when name='a' or name='b' then 'g1' when name='c' or name='d' then 'g2' else 'g3' end as g,
    sum(col1) as col1,sum(col2) as col2,sum(col3) as col3
    from tb
    group by convert(varchar(10),dt,120),
    case when name='a' or name='b' then 'g1' when name='c' or name='d' then 'g2' else 'g3' end
      

  3.   

    以前只会select里的 case when现在学会group by里的 case when 了.呵呵.
      

  4.   

    多写几个字。
    x y z 是什么意思?