财务凭证查询

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

猜你喜欢

转载自blog.csdn.net/qq_41969460/article/details/87880148
今日推荐