数据库中已经有一个名为@ tmp0的对象

2020-08-18 21:14发布

         点击此处--->   EasySAP.com群内免费提供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))
 

谢谢

         点击此处--->   EasySAP.com群内免费提供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))
 

谢谢

付费偷看设置
发送
10条回答
太Q了
1楼 · 2020-08-18 21:34.采纳回答

嗨,

首先在测试数据库中添加以下存储过程,

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

compass1988
2楼-- · 2020-08-18 21:49

您好,

如果通过示例分享您的需求,它很容易回答您的查询。

从错误消息中,已经有一个具有相同对象名称的临时表。

此致

Nagarajan

nice_wp
3楼-- · 2020-08-18 21:49

嗨Nagarajan

我想如果临时表已经存在,则应将其删除然后创建

谢谢

hongfeng1314
4楼-- · 2020-08-18 21:36

如果我在SQL Server 2017中运行以上查询,则未收到任何错误消息。

亦是此间程序员
5楼-- · 2020-08-18 21:48

嗨Nagarajan

我遇到错误。 其次,我将此查询写在SAP B1的查询生成器中

谢谢

木偶小白
6楼-- · 2020-08-18 21:37

建议您使用SQL版本。

浮生未央
7楼-- · 2020-08-18 21:46

您好

Sql 2014

谢谢

一周热门 更多>