if object_id('tempdb..#pz') is not null Begin
drop table #pz
End
select * into #pz from (
select a.FDate ,a.FYear,a.FNumber as Fpznum,b.FExplanation ,
case when CHARINDEX('.',REPLACE(REPLACE(b.FExplanation,',','.'),'(','.'))= 0
then REPLACE(REPLACE(SUBSTRING(b.FExplanation ,CHARINDEX('G' ,b.FExplanation) ,16),',','.'),'(','.')
else SUBSTRING(REPLACE(REPLACE(REPLACE(b.FExplanation,'收款',''),',','.'),'(','.'),1,CHARINDEX('.',REPLACE(REPLACE(b.FExplanation,',','.'),'(','.'))-1 )
end as 'SEOrderNo',
--case
--when CHARINDEX('款',b.FExplanation) > 0 then SUBSTRING(b.FExplanation, CHARINDEX('款',b.FExplanation)+1,99)
--when CHARINDEX(',',b.FExplanation) > 0 then SUBSTRING(b.FExplanation,1, CHARINDEX(',',b.FExplanation)-1)
--when CHARINDEX('(',b.FExplanation) > 0 then SUBSTRING(b.FExplanation,1, CHARINDEX('(',b.FExplanation)-1)
--when CHARINDEX(' ',b.FExplanation) > 0 then SUBSTRING(b.FExplanation,1, CHARINDEX(' ',b.FExplanation)-1)
--else b.FExplanation end,
t1.FName ,t3.FNumber ,b.FAmountFor ,
case when b.fdc = 1 then b.FAmountFor else 0 end as '借方金额',case when b.fdc = 0 then b.FAmountFor else 0 end as '贷方金额',
case when b.fdc = 1 then b.FAmountFor else 0 end - case when b.fdc = 0 then b.FAmountFor else 0 end as '余额'
from t_voucher a
inner join t_voucherentry b on a.FVoucherID = B.FVoucherID
inner join t_account t1 on b.FAccountID = t1.FAccountID
left join t_ItemDetail t2 on b.FDetailID = t2.FDetailID
left join t_organization t3 on t2.F1 = t3.FitemID
where
a.FVoucherID in (select FVoucherID from t_voucherentry where FAccountID = '1018' ) and t1.FName = '应收账款'
and a.FExplanation <> '结转汇兑损益'
--and t3.fnumber = '203'
) a
-------
select * from (
select * from (
select Fdate,Fyear,Fpznum,FExplanation,
case
when CHARINDEX('.',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('.',SEOrderNo)-1)
when CHARINDEX(' ',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX(' ',SEOrderNo)-1)
when CHARINDEX('余',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('余',SEOrderNo)-1)
when CHARINDEX('部',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('部',SEOrderNo)-1)
when CHARINDEX('订',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('订',SEOrderNo)-1)
when CHARINDEX('全',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('全',SEOrderNo)-1)
when CHARINDEX('未',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('未',SEOrderNo)-1)
when CHARINDEX('样',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('样',SEOrderNo)-1)
when CHARINDEX('收款',SEOrderNo) > 0 then SUBSTRING(SEOrderNo, CHARINDEX('收款',SEOrderNo),99)
else SEOrderNo
end as FSEOrderNo,
Fname,fnumber,借方金额,贷方金额,余额 from #pz
) a
union all
select max(fdate),2018,0,'',FSEOrderNo,'小计',max(fnumber) as fnumber,sum(借方金额),sum(贷方金额),sum(余额) from (
select Fdate,Fyear,FExplanation,
case
when CHARINDEX('.',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('.',SEOrderNo)-1)
when CHARINDEX(' ',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX(' ',SEOrderNo)-1)
when CHARINDEX('余',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('余',SEOrderNo)-1)
when CHARINDEX('部',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('部',SEOrderNo)-1)
when CHARINDEX('订',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('订',SEOrderNo)-1)
when CHARINDEX('全',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('全',SEOrderNo)-1)
when CHARINDEX('未',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('未',SEOrderNo)-1)
when CHARINDEX('样',SEOrderNo) > 0 then SUBSTRING(SEOrderNo,1, CHARINDEX('样',SEOrderNo)-1)
when CHARINDEX('收款',SEOrderNo) > 0 then SUBSTRING(SEOrderNo, CHARINDEX('收款',SEOrderNo),99)
else SEOrderNo
end as FSEOrderNo,
Fname,fnumber,借方金额,贷方金额,余额 from #pz
) a
group by FSEOrderNo
) b
order by fnumber,FSEOrderNo,fname desc