点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨
IF object_id('tempdb ..#Tmp0')不为空 开始 删除表#Tmp0 结束 创建表#Tmp0(DocEntry int,DocNum varchar(10),DocDate日期,DocStatus varchar(1),NumAtCard varchar(100), CardName varchar(100),GstRegNo varchar(50),Location varchar(100),数量小数(18,2),BaseAmt小数(18,2),TaxPercent小数(18,2), Cgst十进制(18,2),Sgst十进制(18,2),Igst十进制(18,2),UTGst十进制(18,2),其他十进制(18,2))
谢谢
嗨,
首先在测试数据库中添加以下存储过程,
USE [输入测试数据库]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
创建过程[dbo]。[TEST]
< p> @FromDate日期@Todatedate
As
开始
SET @FromDate =(从OPCH Ta中选择Ta.Docdate 其中Ta.DocDate> ='[%0]')
SET @ToDate =(从OPCH Tb中选择Tb.Docdate,其中Tb.DocDate <='[%1]')
< p>如果OBJECT_ID('tempdb ..#tbl1')不为空开始
删除表#tbl1
结束
创建表#tbl1
(DocEntry int,DocNum varchar(10),DocDate date,DocStatus varchar(1),NumAtCard varchar(100),
CardName varchar(100),GstRegNo varchar(50),位置varchar(100),数量十进制(18,2),BaseAmt十进制(18,2),TaxPercent十进制(18,2),
Cgst十进制(18,2), Sgst十进制(18,2),Igst十进制(18,2),UTGst十进制(18,2),其他十进制(18,2))
插入#tbl1
SELECT M.DocEntry,M.DocNum,M.DocDate,M.DocStatus,M.NumAtCard,
M.CardName,A.GSTRegnNo,P.Location,
Sum(L.Quantity)为'Quantity',
Sum(L.LineTotal) 作为BaseAmt,Max(L.VatPrcnt)'TaxPercent',
(SELECT Isnull(Sum(TaxSum),0)FROM PCH4,其中statype = -100和DocEntry = M.DocEntry和StcCode = L.TaxCode )作为'CGST',
(从PCH4中选择SELECT Isnull(Sum(TaxSum),0),其中statype = -110并且DocEntry = M.DocEntry和StcCode = L.TaxCode)作为'SGST',/p>
(从PCH4中选择Isnull(Sum(TaxSum),0),其中statype = -120且DocEntry = M.DocEntry和StcCode = L.TaxCode)为'IGST',
( 从PCH4 SELECT Isnull(Sum(TaxSum),0)其中statype = -150且DocEntry = M.DocEntry和StcCode = L.TaxCode)作为'UTGST',
Isnull(Sum(M.WTSum + M.RoundDif + M.TotalExpns),0)设为其他
FROM OPCH L.DocEntry上的M内连接PCH1 L = M.CardCode上的M.DocEntry
左连接CRD1 A = L。[LocCode] = P。[Code]
上的A.CardCode和M.PayToCode = A.Address和A.AdresType ='S'
INNER JOIN OLCT P 在哪里(M.DocDate> = @FromDate和M.DocDate <= @Todate)
组别
M.Doc Entry,M.DocNum,M.DocDate,M.DocStatus,M.NumAtCard,M.CardName,A.GSTRegnNo,P。[Location],L.TaxCode
ORDER BY
M.DocEntry,M.DocNum,M.DocDate,M.DocStatus,M.NumAtCard,M.CardName
SELECT
在RR = 1则CAST的情况下(DocEntry AS varchar (20))ELSE''END'内部编号',
当RR = 1时的情况然后是CAST(DocNum AS varchar(20))ELSE''END'AP Inv。 #',
当RR = 1时的情况然后转换(VARCHAR(10),DocDate,103)否则''END'Doc。 日期",
当RR = 1时为例,然后DocStatus ELSE" END"文档。 状态",
当RR = 1则为NumAtCard ELSE的情况''END'Bill No.&Dt。',
当RR = 1则为CardName ELSE时的情况'END'供应商 名称",
当RR = 1则为GstRegnNo ELSE''END的情况'Gst No',
当RR = 1则为ASE ELSE" END位置的情况,
Quantity,BaseAmt,TaxPercent as'Tax%',Cgst,Sgst,Igst,UTGst,
(BaseAmt + Cgst + Sgst + Igst + UTGst)'小计',
当RR = 1时为其他情况,否则为0 END其他,
当RR = 1时,则为情况(BaseAmt + Cgst + Sgst + Igst + UTGst + Other)ELSE(BaseAmt + Cgst + Sgst + Igst + UTGst)END'总金额'
FROM
(SELECT
(ROW_NUMBER()OVER(PARTITION BY DocEntry ORDER BY DocEntry)))[RR], *
FROM#tbl1)SUBQUERY1
End
此致
Nagarajan
我可以让完整的查询在查询生成器中运行吗?
嗨Nagarajan
在查询生成器中出现问题
谢谢
一周热门 更多>