存货对总账查询语句(优化版)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

优化版存货对总账查询语句日期:2012-6-20发稿人:兰岚第1页共7页优化版存货对总账查询语句优化说明:(1)操作简便:直接复制以下SQL语句到查询分析器里使用;(2)改动面少:只需对会计科目编号、年月做更改,即红色字段是需要做更改的部分;(3)缩短时间:减少因寻找差异单据而耗费在几个excel表中核对的时间;(4)简化操作:无需在前台导太多的报表来寻找差异,只需后台执行以下语句即可。使用说明:(1)适用于长期对账,基本设置都没有问题,单据都抛分录和凭证的客户;(2)适用于已有一定查账经验的人员使用;(3)关于查暂估部分,目前只分析进货暂估,委外暂估暂未考虑;(4)建议查询语句时最好分开单独执行,以免混乱。**********************************************************************第一步:先在易飞中跑库存明细表或进耗存统计表和科目余额表来确定总差异********************************************************************************************************************************************第二步:执行以下SQL语句来统计出存货、分录和总账的数据,以确定差异信息说明:@ACCOUNT表示要查的会计科目,@MONTH表示要查的年月**********************************************************************declare@ACCOUNTchar(20)set@ACCOUNT='1403'DECLARE@MONTHCHAR(6)SELECT@MONTH='201205'SELECT单别,SUM(ISNULL(INV本期发生额,0))ASINV本期发生额,SUM(ISNULL(AJS本期发生额,0))ASAJS本期发生额,sum(INV本期发生额-AJS本期发生额)as抛分录差额from(--INV本期发生额SELECTLA006as单别,SUM(LA013*LA005)asINV本期发生额,0asAJS本期发生额FROMINVLAINNERJOININVMBONMB001=LA001INNERJOINCMSMCONMC001=LA009LEFTJOININVMAONMA002=MB005WHERESUBSTRING(LA004,1,6)=@MONTHANDMA004=@ACCOUNTANDMC004=1GROUPBYLA006unionall--AJS当期发生额SELECTTB013AS单别,0asINV本期发生额,SUM(TB007*TB004)asAJS本期发生额FROMAJSTAINNERJOINAJSTBONTA001=TB001ANDTA002=TB002WHERESUBSTRING(TA006,1,6)=@MONTHANDTB005=@ACCOUNTGROUPBYTB013)ASF优化版存货对总账查询语句日期:2012-6-20发稿人:兰岚第2页共7页groupBY单别--havingsum(INV本期发生额-AJS本期发生额)0orderBY单别--ACT当期发生额SELECTTA006as凭证来源码,SUM(TB007*TB004)asACT本期发生额FROMACTTAINNERJOINACTTBONTA001=TB001ANDTA002=TB002WHERESUBSTRING(ACTTA.TA003,1,6)=@MONTHANDACTTA.TA010='Y'ANDACTTB.TB005=@ACCOUNTGROUPBYTA006**********************************************************************第三步:执行INV-AJS差异明细确定具体哪些单别单号的INVLA和分录不一致说明:@ACCOUNT表示要查的会计科目,@MONTH表示要查的年月,@DanBie表示要查明细的具体单别**********************************************************************declare@ACCOUNTchar(20)set@ACCOUNT='1403'DECLARE@MONTHCHAR(6)SELECT@MONTH='201205'DECLARE@DanBieCHAR(6)SELECT@DanBie=('1101')SELECT单别单号,SUM(ISNULL(INV本期发生额,0))ASINV本期发生额,SUM(ISNULL(AJS本期发生额,0))ASAJS本期发生额,sum(INV本期发生额-AJS本期发生额)as抛分录差额from(--INV本期发生额SELECTLA006+'-'+LA007AS单别单号,SUM(LA013*LA005)asINV本期发生额,0asAJS本期发生额FROMINVLAINNERJOININVMBONMB001=LA001INNERJOINCMSMCONMC001=LA009LEFTJOININVMAONMA002=MB005WHERESUBSTRING(LA004,1,6)=@MONTHANDMA004=@ACCOUNTANDMC004=1ANDLA006=@DanBieGROUPBYLA006,LA007unionall--AJS当期发生额SELECTTB013+'-'+TB014AS单别单号,0asINV本期发生额,SUM(TB007*TB004)asAJS本期发生额FROMAJSTAINNERJOINAJSTBONTA001=TB001ANDTA002=TB002WHERESUBSTRING(TA006,1,6)=@MONTHANDTB005=@ACCOUNTANDTB013=@DanBieGROUPBYTB013,TB014)ASFgroupBY单别单号havingsum(INV本期发生额-AJS本期发生额)0orderBY单别单号**********************************************************************优化版存货对总账查询语句日期:2012-6-20发稿人:兰岚第3页共7页第四步:执行AJS-ACT差异明细确定具体哪些单别单号的分录和凭证不一致说明:@ACCOUNT表示要查的会计科目,@MONTH表示要查的年月,**********************************************************************declare@ACCOUNTchar(20)set@ACCOUNT='1403'DECLARE@MONTHCHAR(6)SELECT@MONTH='201205'SELECT单别,单号,来源单别单号,SUM(ISNULL(ACT本期发生额,0))as凭证发生额,SUM(ISNULL(AJS本期发生额,0))as分录发生额,SUM(ISNULL((ACT本期发生额-AJS本期发生额),0))as抛凭证差异FROM(SELECTTA004as单别,TA005AS单号,TB013+'-'+TB014AS来源单别单号,0asACT本期发生额,SUM(TB007*TB004)asAJS本期发生额FROMAJSTAINNERJOINAJSTBONTA001=TB001ANDTA002=TB002WHERESUBSTRING(TA006,1,6)=@MONTHANDTB005=@ACCOUNTGROUPBYTA004,TA005,TB013+'-'+TB014UNIONALLSELECTTA001AS单别,TA002as单号,TA006as来源单别单号,SUM(TB007*TB004)asACT本期发生额,0asAJS本期发生额FROMACTTAINNERJOINACTTBONTA001=TB001ANDTA002=TB002WHEREACTTA.TA010='Y'ANDACTTB.TB005=@ACCOUNTandSUBSTRING(ACTTA.TA003,1,6)=@MONTHGROUPBYTA001,TA002,TA006)ASPZYCGROUPBY单别,单号,来源单别单号havingSUM(ISNULL((ACT本期发生额-AJS本期发生额),0))0orderby单别,单号,来源单别单号**********************************************************************第五步:查暂估部分,以下分月初回冲和单到回冲来确定具体哪些单据暂估错了说明:@ACCOUNT表示要查的会计科目,@MONTH表示要查的年月,@OLDMONTH表示要查的上个月份**********************************************************************--月初回冲:恒等式:本月暂估-上月暂估+本月采购发票=本月进货+本月价差如若单据对不上可将HAVING前加‘---’注释掉查询全部暂估数据declare@ACCOUNTchar(20)set@ACCOUNT='1403'DECLARE@MONTHCHAR(6)SELECT@MONTH='201205'DECLARE@OLDMONTHCHAR(6)SELECT@OLDMONTH='201204'select进货单号,sum(ISNULL(本月进货,0))AS本月进货,SUM(ISNULL(价差,0))AS价差,SUM(ISNULL(本月发票,0))as发票金额,SUM(ISNULL(本月暂估,0))as本月暂估,SUM(isnull(上月暂估,0))AS上月暂估,sum(ISNULL(本月暂估,0)-ISNULL(上月暂估,0)+ISNULL(本月发票,0)-ISNULL(本月进货,0)-ISNULL(价差,0))AS差额from(优化版存货对总账查询语句日期:2012-6-20发稿人:兰岚第4页共7页--本月进货SELECTLA006+'-'+LA007AS进货单号,SUM(LA013*LA005)AS本月进货,0AS价差,0AS本月发票,0AS本月暂估,0as上月暂估FROMINVLAINNERJOININVMBONMB001=LA001INNERJOINCMSMCONMC001=LA009LEFTJOININVMAONMA002=MB005LEFTJOINCMSMQONLA006=MQ001WHERESUBSTRING(LA004,1,6)=@MONTHANDMA004=@ACCOUNTANDMC004=1ANDMA001='1'ANDMQ003in('34','35')GROUPBYLA006,LA007UNIONALL--价差SELECTTB005+'-'+TB006as进货单号,0AS本月进货,sum(ISNULL(TB055,0))as价差,0as本月发票,0AS本月暂估,0as上月暂估FROMACPTBLEFTJOINACPTAONTB001=TA001ANDTB002=TA002INNERJOININVMBONMB001=TB037LEFTJOININVMAONMA002=MB005WHERESUBSTRING(TA003,1,6)=@MONTHANDTB056''ANDTA024='Y'ANDMA004=@ACCOUNTgroupBYTB005,TB006unionall--本月发票SELECTTB005+'-'+TB006as进货单号,0AS本月进货,0as价差,casewhenTA079='1'THENSUM(ISNULL(TB017*1,0))ELSESUM(ISNULL(TB017*-1,0))END

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功