select spart_code
,已收款=sum(case check_yn when 1 then to_price else 0 end)
,未收款=sum(case check_yn when 0 then to_price else 0 end)
from t2
group by spart_code
,已收款=sum(case check_yn when 1 then to_price else 0 end)
,未收款=sum(case check_yn when 0 then to_price else 0 end)
from t2
group by spart_code
sum(case check_yn when 1 then to_price else 0 end) already_money,
sum(case check_yn when 0 then to_price else 0 end) 'sum(to_price)',
sum(case check_yn when 1 then to_price else -to_price end) sub_money
from t2 group by spart_code
(select spart_code,sum(to_price)as already_money from t2 group by spart_code,check_yn having check_yn=1 )a
join
(select spart_code,sum(to_price)as total_money form t2 group by spart_code)b
on a.spart_code=b.spart_code
,已收款=sum(case check_yn when 1 then to_price else 0 end)
,应收款=sum(to_price)
,差额=sum(case check_yn when 0 then to_price else 0 end)
from t2
group by spart_code 你说的差额应该是未收款吧?