SAP B1查询中的SWEI错误

2020-09-04 12:36发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

有人告诉我要在SAP B1中优化销售税预付款查询。

我的上一个查询执行大约需要8分钟(在SQL中已选中):

选择"发票"类型
    ,oc.CardCode"客户代码"
    ,oc.CardName"客户名称"
    ,oc.LicTradNum"客户NTN"
    ,oc.AddID"客户CNIC"
    ,oc.CntctPrsn"联系人"
    ,oc。地址
    ,iv.DocNum"文档编号"
    ,iv.DocDate"文档日期"
    ,iv.DocDueDate"文档到期日"
    ,NULL"基础文档"
    ,max(ivd.VatPrcnt)"费率"
    ,ABS(max(iv.VatSum))" ST模式下的销售税/FED"
    ,max((iv.DocTotal-iv.VatSum))"不包括营业税的销售价值"
    ,max(((iv.DocTotal-iv.VatSum-iv.TotalExpns))"销售价值,不包括营业税/运费"
    ,Sum(ivd.U_AddVatAmt)"再加2%税"
    ,ABS(max(jv_in_tax.cr))"收入税"
    ,SUM((ivd.Quantity)*(ivd.PriceBefDi)*((ivd.Discprcnt)/100)作为折扣

    ,(max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+
  SUM(((ivd.Quantity)*(ivd.PriceBefDi)*((ivd.Discprcnt)/100))为
 "所得税价值"
    ,max(jv_in_tax.cr)/NULLIF((max(iv.VatSum))+
  (max(((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*
  (ivd.PriceBefDi)*(((ivd.Discprcnt)/100)),0)作为" WHT.Rate"

   ,iv.U_S_Type作为"销售类型",
    iv.U_Cheque为"支票号码",
    iv.U_Bank_Guarantee作为" B.G号",
    iv.U_Policy_Number作为"政策编号",
    iv.U_Policy_Number_SC为"政策编号SC",
    iv.U_DD_T_Amt作为" DD Total Amount",
    iv.U_DD_Amt作为" DD Amount 1",
    iv.U_DD_NUm为" DD Number 1",
    iv.U_DD_Num1作为" DD Number 2",
    iv.U_DD_Num2作为" DD Number 3",
    iv.U_DD_Amt1作为" DD Amount 2",
    iv.U_DD_Amt2作为" DD Amount 3",
    U_POD_CustName作为" POD客户名称",
    iv.U_POD_添加为" POD客户地址"
    ,TERRIT.descript领土
    ,og.GroupName区域

 来自oinv iv
 内部联接OCRD oc on(iv.CardCode = oc.CardCode AND iv.CANCELED <>'C'和iv.DocDate在'[%1]'和'[%2]'之间)
 内部连接INV1 ivd on(ivd.DocEntry = iv.DocEntry)
 左外部JOIN OTER TERRIT ON(oc.Territory = TERRIT.territryID AND CardType ='C')
 内部连接OCRG og on(og.GroupCode = oc.GroupCode)
 左外连接
 (
 选择oj.BaseRef,sum(jd.Credit)cr,sum(jd.Debit)dr
 来自OACT oc内部连接JDT1 jd on(oc.AcctCode = jd.Account)
 内部联接OJDT oj on(oj.TransId = jd.TransId)
 其中FatherNum ='4990'
 由oj.BaseRef分组)jv_in_tax on(jv_in_tax.BaseRef = iv.DocEntry
 )

 按oc.CardCode分组
    ,oc.CardName
    ,oc.LicTradNum
    ,oc.AddID
    ,oc。地址
    ,iv.DocNum
    ,iv.DocDate
    ,iv.DocDueDate
    ,oc.CntctPrsn
    ,iv.U_S_Type
    ,iv.U_Cheque
    ,iv.U_Bank_Guarantee
    ,iv.U_S_Type
    ,iv.U_Cheque
    ,iv.U_Bank_Guarantee
    ,iv.U_Policy_Number
    ,iv.U_Policy_Number_SC
    ,iv.U_DD_T_Amt
    ,iv.U_DD_Amt
    ,iv.U_DD_NUm
    ,iv.U_DD_Num1
    ,iv.U_DD_Num2
    ,iv.U_DD_Amt1
    ,iv.U_DD_Amt2
    ,U_POD_CustName
    ,iv.U_POD_Add
    ,TERRIT。描述
    ,og.GroupName
 

在SAP B1客户端中优化并另存为新查询后,该过程现在需要10秒(在SQL中已检查),但出现此错误,并且它也没有提示我输入参数:

选择"发票"类型
 ,oc.CardCode"客户代码"
 ,oc.CardName"客户名称"
 ,oc.LicTradNum"客户NTN"
 ,oc.AddID"客户CNIC"
 ,oc.CntctPrsn"联系人"
 ,oc。地址
 ,iv.DocNum"文档编号"
 ,iv.DocDate"文档日期"
 ,iv.DocDueDate"文档到期日"
 ,NULL"基础文档"
 ,max(ivd.VatPrcnt)"费率"
 ,ABS(max(iv.VatSum))" ST模式下的销售税/FED"
 ,max((iv.DocTotal-iv.VatSum))"不包括营业税的销售价值"
 ,max(((iv.DocTotal-iv.VatSum-iv.TotalExpns))"销售价值,不包括营业税/运费"
 ,Sum(ivd.U_AddVatAmt)"再加2%税"
 -,ABS(max(jv_in_tax.cr))"收入税"
 ,(从OACT oc内部连接JDT1 jd上选择(oc.AcctCode = jd.Account)的sum(jd.Credit)cr
 内部联接OJDT oj on(oj.TransId = jd.TransId)
 其中FatherNum ='4990'和oj.BaseRef = iv.DocEntry
 按oj.BaseRef分组)"收入税"
    
 ,SUM((ivd.Quantity)*(ivd.PriceBefDi)*((ivd.Discprcnt)/100)作为折扣
 ,(max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*(ivd.PriceBefDi)*(((ivd.Discprcnt)/ 100))为"所得税价值"


 -,max(jv_in_tax.cr)/NULLIF((max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*(ivd  .PriceBefDi)*(((ivd.Discprcnt)/100)),0)作为" WHT.Rate"-价格=所得税/所得税价值

 ,(选择总和(jd.Credit)cr
 来自OACT oc内部连接JDT1 jd on(oc.AcctCode = jd.Account)
 内部联接OJDT oj on(oj.TransId = jd.TransId)
 其中FatherNum ='4990'
 和oj.BaseRef = iv.DocEntry
 通过oj.BaseRef)/NULLIF((max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*(ivd.PriceBefDi)进行分组 *(((ivd.Discprcnt)/100),0)作为" WHT.Rate"

 ,iv.U_S_Type作为"销售类型",
 iv.U_Cheque为"支票号码",
 iv.U_Bank_Guarantee作为" B.G号",
 iv.U_Policy_Number作为"政策编号",
 iv.U_Policy_Number_SC为"政策编号SC",
 iv.U_DD_T_Amt作为" DD Total Amount",
 iv.U_DD_Amt作为" DD Amount 1",
 iv.U_DD_NUm为" DD Number 1",
 iv.U_DD_Num1作为" DD Number 2",
 iv.U_DD_Num2作为" DD Number 3",
 iv.U_DD_Amt1作为" DD Amount 2",
 iv.U_DD_Amt2作为" DD Amount 3",
 iv.U_POD_CustName作为" POD客户名称",
 iv.U_POD_添加为" POD客户地址"
 ,TERRIT.descript领土
 ,og.GroupName区域

 来自oinv iv
 内部联接OCRD oc on(iv.CardCode = oc.CardCode AND iv.CANCELED <>'C'和iv.DocDate在'[%1]'和'[%2]'之间)
 内部连接INV1 ivd on(ivd.DocEntry = iv.DocEntry)
 左外部JOIN OTER TERRIT ON(oc.Territory = TERRIT.territryID AND CardType ='C')
 内部连接OCRG og on(og.GroupCode = oc.GroupCode)

 按oc.CardCode分组
     ,oc.CardName
     ,oc.LicTradNum
     ,oc.AddID
     ,oc。地址
     ,iv.DocNum
     ,iv.DocDate
     ,iv.DocDueDate
     ,oc.CntctPrsn
     ,iv.U_S_Type
     ,iv.U_Cheque
     ,iv.U_Bank_Guarantee
     ,iv.U_S_Type
     ,iv.U_Cheque
     ,iv.U_Bank_Guarantee
     ,iv.U_Policy_Number
     ,iv.U_Policy_Number_SC
     ,iv.U_DD_T_Amt
     ,iv.U_DD_Amt
     ,iv.U_DD_NUm
     ,iv.U_DD_Num1
     ,iv.U_DD_Num2
     ,iv.U_DD_Amt1
     ,iv.U_DD_Amt2
     ,iv.U_POD_CustName
     ,iv.U_POD_Add
     ,TERRIT。描述
     ,og.GroupName
     ,iv.DocEntry 

任何帮助将不胜感激。

此致

Sana

screen.jpg (167.1 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

有人告诉我要在SAP B1中优化销售税预付款查询。

我的上一个查询执行大约需要8分钟(在SQL中已选中):

选择"发票"类型
    ,oc.CardCode"客户代码"
    ,oc.CardName"客户名称"
    ,oc.LicTradNum"客户NTN"
    ,oc.AddID"客户CNIC"
    ,oc.CntctPrsn"联系人"
    ,oc。地址
    ,iv.DocNum"文档编号"
    ,iv.DocDate"文档日期"
    ,iv.DocDueDate"文档到期日"
    ,NULL"基础文档"
    ,max(ivd.VatPrcnt)"费率"
    ,ABS(max(iv.VatSum))" ST模式下的销售税/FED"
    ,max((iv.DocTotal-iv.VatSum))"不包括营业税的销售价值"
    ,max(((iv.DocTotal-iv.VatSum-iv.TotalExpns))"销售价值,不包括营业税/运费"
    ,Sum(ivd.U_AddVatAmt)"再加2%税"
    ,ABS(max(jv_in_tax.cr))"收入税"
    ,SUM((ivd.Quantity)*(ivd.PriceBefDi)*((ivd.Discprcnt)/100)作为折扣

    ,(max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+
  SUM(((ivd.Quantity)*(ivd.PriceBefDi)*((ivd.Discprcnt)/100))为
 "所得税价值"
    ,max(jv_in_tax.cr)/NULLIF((max(iv.VatSum))+
  (max(((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*
  (ivd.PriceBefDi)*(((ivd.Discprcnt)/100)),0)作为" WHT.Rate"

   ,iv.U_S_Type作为"销售类型",
    iv.U_Cheque为"支票号码",
    iv.U_Bank_Guarantee作为" B.G号",
    iv.U_Policy_Number作为"政策编号",
    iv.U_Policy_Number_SC为"政策编号SC",
    iv.U_DD_T_Amt作为" DD Total Amount",
    iv.U_DD_Amt作为" DD Amount 1",
    iv.U_DD_NUm为" DD Number 1",
    iv.U_DD_Num1作为" DD Number 2",
    iv.U_DD_Num2作为" DD Number 3",
    iv.U_DD_Amt1作为" DD Amount 2",
    iv.U_DD_Amt2作为" DD Amount 3",
    U_POD_CustName作为" POD客户名称",
    iv.U_POD_添加为" POD客户地址"
    ,TERRIT.descript领土
    ,og.GroupName区域

 来自oinv iv
 内部联接OCRD oc on(iv.CardCode = oc.CardCode AND iv.CANCELED <>'C'和iv.DocDate在'[%1]'和'[%2]'之间)
 内部连接INV1 ivd on(ivd.DocEntry = iv.DocEntry)
 左外部JOIN OTER TERRIT ON(oc.Territory = TERRIT.territryID AND CardType ='C')
 内部连接OCRG og on(og.GroupCode = oc.GroupCode)
 左外连接
 (
 选择oj.BaseRef,sum(jd.Credit)cr,sum(jd.Debit)dr
 来自OACT oc内部连接JDT1 jd on(oc.AcctCode = jd.Account)
 内部联接OJDT oj on(oj.TransId = jd.TransId)
 其中FatherNum ='4990'
 由oj.BaseRef分组)jv_in_tax on(jv_in_tax.BaseRef = iv.DocEntry
 )

 按oc.CardCode分组
    ,oc.CardName
    ,oc.LicTradNum
    ,oc.AddID
    ,oc。地址
    ,iv.DocNum
    ,iv.DocDate
    ,iv.DocDueDate
    ,oc.CntctPrsn
    ,iv.U_S_Type
    ,iv.U_Cheque
    ,iv.U_Bank_Guarantee
    ,iv.U_S_Type
    ,iv.U_Cheque
    ,iv.U_Bank_Guarantee
    ,iv.U_Policy_Number
    ,iv.U_Policy_Number_SC
    ,iv.U_DD_T_Amt
    ,iv.U_DD_Amt
    ,iv.U_DD_NUm
    ,iv.U_DD_Num1
    ,iv.U_DD_Num2
    ,iv.U_DD_Amt1
    ,iv.U_DD_Amt2
    ,U_POD_CustName
    ,iv.U_POD_Add
    ,TERRIT。描述
    ,og.GroupName
 

在SAP B1客户端中优化并另存为新查询后,该过程现在需要10秒(在SQL中已检查),但出现此错误,并且它也没有提示我输入参数:

选择"发票"类型
 ,oc.CardCode"客户代码"
 ,oc.CardName"客户名称"
 ,oc.LicTradNum"客户NTN"
 ,oc.AddID"客户CNIC"
 ,oc.CntctPrsn"联系人"
 ,oc。地址
 ,iv.DocNum"文档编号"
 ,iv.DocDate"文档日期"
 ,iv.DocDueDate"文档到期日"
 ,NULL"基础文档"
 ,max(ivd.VatPrcnt)"费率"
 ,ABS(max(iv.VatSum))" ST模式下的销售税/FED"
 ,max((iv.DocTotal-iv.VatSum))"不包括营业税的销售价值"
 ,max(((iv.DocTotal-iv.VatSum-iv.TotalExpns))"销售价值,不包括营业税/运费"
 ,Sum(ivd.U_AddVatAmt)"再加2%税"
 -,ABS(max(jv_in_tax.cr))"收入税"
 ,(从OACT oc内部连接JDT1 jd上选择(oc.AcctCode = jd.Account)的sum(jd.Credit)cr
 内部联接OJDT oj on(oj.TransId = jd.TransId)
 其中FatherNum ='4990'和oj.BaseRef = iv.DocEntry
 按oj.BaseRef分组)"收入税"
    
 ,SUM((ivd.Quantity)*(ivd.PriceBefDi)*((ivd.Discprcnt)/100)作为折扣
 ,(max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*(ivd.PriceBefDi)*(((ivd.Discprcnt)/ 100))为"所得税价值"


 -,max(jv_in_tax.cr)/NULLIF((max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*(ivd  .PriceBefDi)*(((ivd.Discprcnt)/100)),0)作为" WHT.Rate"-价格=所得税/所得税价值

 ,(选择总和(jd.Credit)cr
 来自OACT oc内部连接JDT1 jd on(oc.AcctCode = jd.Account)
 内部联接OJDT oj on(oj.TransId = jd.TransId)
 其中FatherNum ='4990'
 和oj.BaseRef = iv.DocEntry
 通过oj.BaseRef)/NULLIF((max(iv.VatSum))+(max((iv.DocTotal-iv.VatSum-iv.TotalExpns)))+ SUM((ivd.Quantity)*(ivd.PriceBefDi)进行分组 *(((ivd.Discprcnt)/100),0)作为" WHT.Rate"

 ,iv.U_S_Type作为"销售类型",
 iv.U_Cheque为"支票号码",
 iv.U_Bank_Guarantee作为" B.G号",
 iv.U_Policy_Number作为"政策编号",
 iv.U_Policy_Number_SC为"政策编号SC",
 iv.U_DD_T_Amt作为" DD Total Amount",
 iv.U_DD_Amt作为" DD Amount 1",
 iv.U_DD_NUm为" DD Number 1",
 iv.U_DD_Num1作为" DD Number 2",
 iv.U_DD_Num2作为" DD Number 3",
 iv.U_DD_Amt1作为" DD Amount 2",
 iv.U_DD_Amt2作为" DD Amount 3",
 iv.U_POD_CustName作为" POD客户名称",
 iv.U_POD_添加为" POD客户地址"
 ,TERRIT.descript领土
 ,og.GroupName区域

 来自oinv iv
 内部联接OCRD oc on(iv.CardCode = oc.CardCode AND iv.CANCELED <>'C'和iv.DocDate在'[%1]'和'[%2]'之间)
 内部连接INV1 ivd on(ivd.DocEntry = iv.DocEntry)
 左外部JOIN OTER TERRIT ON(oc.Territory = TERRIT.territryID AND CardType ='C')
 内部连接OCRG og on(og.GroupCode = oc.GroupCode)

 按oc.CardCode分组
     ,oc.CardName
     ,oc.LicTradNum
     ,oc.AddID
     ,oc。地址
     ,iv.DocNum
     ,iv.DocDate
     ,iv.DocDueDate
     ,oc.CntctPrsn
     ,iv.U_S_Type
     ,iv.U_Cheque
     ,iv.U_Bank_Guarantee
     ,iv.U_S_Type
     ,iv.U_Cheque
     ,iv.U_Bank_Guarantee
     ,iv.U_Policy_Number
     ,iv.U_Policy_Number_SC
     ,iv.U_DD_T_Amt
     ,iv.U_DD_Amt
     ,iv.U_DD_NUm
     ,iv.U_DD_Num1
     ,iv.U_DD_Num2
     ,iv.U_DD_Amt1
     ,iv.U_DD_Amt2
     ,iv.U_POD_CustName
     ,iv.U_POD_Add
     ,TERRIT。描述
     ,og.GroupName
     ,iv.DocEntry 

任何帮助将不胜感激。

此致

Sana

screen.jpg (167.1 kB)
付费偷看设置
发送
5条回答
d56caomao
1楼 · 2020-09-04 13:14.采纳回答

萨娜,你好

使用子查询时,B1 sql解析器使用的常规参数语法 [%0] 不起作用。 请尝试以下语法:

/*从OINV x中选择* */
 声明@FROM作为日期时间
 声明@TO DATETIME
 SET @FROM =/* x.DocDate */[%0]
 SET @TO =/* x.DocDate */[%1]

 -您的查询在这里
  - 除了那个
 --iv.DocDate在'[%1]'和'[%2]'之间
 -成为
 --iv.DocDate @FROM和@TO之间
 

此致

Johan

haha101010
2楼-- · 2020-09-04 13:09

我在反转日记帐分录时遇到相同的错误。 任何想法,为什么或如何添加该JE?

Bunny_CDM
3楼-- · 2020-09-04 13:23

嗨,

在SQL Server Management Studio中运行以上命令以解决此错误。 由于许多UDF字段,我无法运行。

此致

Nagarajan

梦想连接
4楼-- · 2020-09-04 13:26

谢谢Johan ..它奏效了。非常感谢您的解释。

关于

Sana Saeed

绿领巾童鞋
5楼-- · 2020-09-04 13:18

你好,

我已经做到了,它绝对可以正常工作并在SQL Server Management Studio中产生结果。

如果SAP B1不允许子查询,或者在上述更新的查询中我做错了什么,请指导我。

一周热门 更多>