create table test1
(
 [logid] char(50) NOT NULL, 
 [logtype] bit  null,   --类型 1进账 0出账
 [money] int null, --金额
 [date] datetime null --时间类型2011-6-25 11:47:25 
 
)需要的结果是
进账    出账           总计(进账+出账)  时间(2011-6-5)我现在写的是select sum([money]),convert(varchar(20),[date],111) from test1 group by convert(varchar(20),[date],111)
但是不知道要怎么用类型分别统计。求达人帮忙。

解决方案 »

  1.   

    select sum(case when logtype = 1 then money end) as 进账,sum(case when logtype = 0 then money end) as 出账,sum(case when logtype in('1','0') then money end) as 总计,convert(varchar(20),[date],111) as 时间 from test1 group by convert(varchar(20),[date],111)
      

  2.   

    select sum(case when logtype = 1 then money end) as 进账,sum(case when logtype = 0 then money end) as 出账,sum(case when logtype in('1','0') then money end) as 总计,convert(varchar(10),[date],120) as 时间 from test1 group by convert(varchar(10),[date],120)
      

  3.   

    sp1234大哥、
    有时间吗、帮我看看
    http://topic.csdn.net/u/20110626/11/0f5f696b-9fd2-49e1-bf1d-09344f7f2f0a.html?23591
    我的问题吧、
    我死的心都有了、各种办法各种试
      

  4.   

    select (datename(yyyy,[date]) + '-' +datename(mm,[date] +'-' + datename(d,[date])) as [date],sum(case when logtype = 1 then money end) as 进账,sum(case when logtype = 0 then money end) as 出账,sum(case when logtype in('1','0') then money end) as 总计 from test1 group by (datename(yyyy,[date]) + '-' +datename(mm,[date] +'-' + datename(d,[date]))datename(yyyy,[date]) + '-' +datename(mm,[date]) --按月汇总
    datename(yyyy,[date]) + '-' +datename(qq,[date]) --按季度汇总