日期:2014-05-18 浏览次数:20503 次
--try
select 
    count([id]) AS classcount, 
    sum([money]) as zmoney,
    sum(case when b.type = 1 then b.cnt else 0 end) AS ptb, 
    sum(case when b.type = 1 then classmoney else 0 end) AS ptbmoney, 
    sum(case when b.type = 2 then b.cnt else 0 end) AS cwb, 
    sum(case when b.type = 2 then classmoney else 0 end) AS cwbmoney, 
    sum(case when b.type = 3 then b.cnt else 0 end) AS clb, 
    sum(case when b.type = 3 then classmoney else 0 end) AS clbmoney, 
    sum(case when b.type = 4 then b.cnt else 0 end) AS tsb, 
    sum(case when b.type = 4 then classmoney else 0 end) AS tsbmoney 
from dbo.class  as a
    left join 
    (
        select f_grade_id,type,count(*) as cnt, sum([money]) AS classmoney 
        from dbo.class 
        where (f_grade_id = 1)
        group by f_grade_id,type
    ) as b on a.f_grade_id=b.f_grade_id
where a.f_grade_id = 1