类似:
select a.balance ,b.balance from (select cocode,sum(balance)balance group by cocode )a ,(select cocode,sum(balance)balance group by cocode where datediff(day,getdate(),invoicedate)>30)b  where a.cocode= b.cocode

解决方案 »

  1.   

    select a.cocode,a.balance ,b.balance from (select cocode,sum(balance)balance group by cocode )a ,(select cocode,sum(balance)balance group by cocode where datediff(day,getdate(),invoicedate)>30)b  where a.cocode= b.cocode
      

  2.   

    你是不是少了一列:不超过三十天的不算吗?
    下面是有这一列的写法
    select cocode,sum(balance) as balance,
        sum(case when datediff(d,invoicedate,getdate())<30 then balance else 0 end ) as bal1,
        sum(case when datediff(d,invoicedate,getdate()) between 30 and 59 then balance else 0 end ) as bal2,
        sum(case when datediff(d,invoicedate,getdate()) between 60 and 89 then balance else 0 end ) as bal3,
        sum(case when datediff(d,invoicedate,getdate())>=90 then balance else 0 end ) as bal4
    from t_invoice
    group by cocode没有测试过。你先试试。
      

  3.   

    用case语句,同意icevi(按钮工厂) !^_^
      

  4.   

    对,考虑效率就用CASE,按钮的回答。
      

  5.   

    謝謝 icevi(按钮工厂), 還是妳用的熟練!