将表链接到Crystal Reports中现有命令的最佳方法是什么

2020-09-16 00:02发布

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

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


你好

我们有一个基于Command的现有CR。 我想更新报告以添加更多字段。 我曾尝试将表链接到命令,但是当我尝试运行报表时,它将花费很长时间,并最终冻结。

是否存在将表链接到命令的特定方法? 我已经尝试过这样做,就像我要在表到表一样,但是就像我上面说的那样,它没有用。

Anu的建议将不胜感激。

谢谢

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

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


你好

我们有一个基于Command的现有CR。 我想更新报告以添加更多字段。 我曾尝试将表链接到命令,但是当我尝试运行报表时,它将花费很长时间,并最终冻结。

是否存在将表链接到命令的特定方法? 我已经尝试过这样做,就像我要在表到表一样,但是就像我上面说的那样,它没有用。

Anu的建议将不胜感激。

谢谢

付费偷看设置
发送
2条回答
Aaron 3364
1楼-- · 2020-09-16 00:29

嗨,布莱恩,

将表连接到另一个Command SQL时,这两个源之间的连接将在本地处理,而不是推送到数据库服务器。 对于较小的表,这通常可以很快地工作,但是,对于大型表和复杂的SQL查询,它可能会变得相当慢。

是否有理由不将所需的字段添加到Command SQL中?

-Abhilash

ZJXianG
2楼-- · 2020-09-16 00:05

嗨Abhilash,

命令/查询非常复杂,或者至少超出了我的理解范围。 看起来是这样的:

声明@sdate日期,@ edate日期,@ name为nvarchar(100),@ ocode为nvarchar(100)set @sdate ='2017-06-01'set @edate ='2017-06-30'set @name ='Crestron'set @ocode ='Crestron NYSC'-//基于交货的AR发票SELECT T0。[DocDate],T0。[DocNum],T0。[CardCode],T0。[CardName],T1。 [DocEntry],T5。[StreetS],T5。[BuildingS],T5。[CityS],T5。[StateS],T5。[ZipCodeS],T1。[U_Ocode],isnull(T1.U_TRI_origItem的情况,'' )=''然后T1。[ItemCode]否则T3.ItemCode以ItemCode结尾,T1。[Dscription],T1。[Quantity],T1。[Price],T1。[LineTotal],如果为isull(T1.U_TRI_origItem, ")=",然后T1。[U_Manufacturer]否则T4.Firmname以制造商身份结束,ISNULL(T12.TransValue,0)作为'CalcCost'INTO #Temp_MfgOrg FROM [dbo]。[OINV] T0 INNER JOIN [dbo]。 [INV1] T1开启T0。[DocEntry] = T1。[DocEntry]内连接OITM T2开启T1。[ItemCode] = T2。[ItemCode]内连接DLN1 T10在T1.BaseEntry = T10.DocEntry和T1.BaseLine = T10 .LineNum和T1.BaseType ='15'内部连接T10.DocEntry = T11.DocEntry L上的ODLN T11 eft OUter在T1.ItemCode = T12.ItemCode和T12.BASE_REF = T11.DocNum和T12.DocLineNum = T10.LineNum和T12.TransType ='15'上加入OINM T12在T3.Itemcode = T1.U_tri_origitem上向左加入OITM T3 T4上的左外连接OMRCT4。FirmCode=T3。T5上的左外连接INV12 T5。[DocEntry] = T0。[DocEntry] T0。[CANCELED] NOT IN('C','Y')和T1。 U_TRI_plankey为NULL和T1.WhsCode NOT IN('DROPSHIP','DS')-//基于销售订单的AR发票-柜台销售INSERT INTO #Temp_MfgOrg SELECT T0。[DocDate],T0。[DocNum],T0。 [CardCode],T0。[CardName],T1。[DocEntry],T5。[StreetS],T5。[BuildingS],T5。[CityS],T5。[StateS],T5。[ZipCodeS],T1。[U_Ocode ],如果isull(T1.U_TRI_origItem,'')=''的情况,则T1。[ItemCode]否则T3.ItemCode以ItemCode,T1。[Dscription],T1。[Quantity],T1。[Price],T1结尾。 [LineTotal],如果为null(T1.U_TRI_origItem,'')="的情况,则为T1。[U_Manufacturer]否则T4.Firmname以制造商结尾,ISNULL(T6.TransValue,0)以'CalcCost'FROM [dbo]为代表。[ OINV] T0 INNER JOIN [db o]。[INV1] T1到T0。[DocEntry] = T1。[DocEntry]内连接OITM T2到T1。[ItemCode] = T2。[ItemCode]内连接OINM T6在T1.ItemCode = T6.ItemCode和T6。 BASE_REF = T0.DocNum和T6.DocLineNum = T1.LineNum和T6.TransType ='13'T3上的左外部联接OITM T3.Itemcode = T1.U_tri_origitem左外部联接T4上的OMRC T4.FirmCode = T3.FirmIN左联接 T5上的INV12 T5。[DocEntry] = T0。[DocEntry]其中T1.WhsCode NOT IN('DROPSHIP','DS')和(T1.U_TRI_projnum IS NULL)和T1.TreeType IN('P','N' )-//放行订单-基于销售订单的订单-使用在该订单中找到的成本:AP发票,采购订单INSERT INTO #Temp_MfgOrg SELECT T0。[DocDate],T0。[DocNum],T0。[CardCode] ,T0。[CardName],T1。[DocEntry],T5。[StreetS],T5。[BuildingS],T5。[CityS],T5。[StateS],T5。[ZipCodeS],T1。[U_Ocode],案例 当notull(T1.U_TRI_origItem,'')=''时,T1。[ItemCode]否则T3.ItemCode以ItemCode,T1。[Dscription],T1。[Quantity],T1。[Price],T1。[LineTotal]结尾 ,如果为null(T1.U_TRI_origItem,'')='' 然后T1。[U_Manufacturer]否则T4.Firmname以制造商身份结束,(ISNULL(T10.Price,ISNULL(T9.Price,0))* -1)作为来自[dbo]的" CalcCost"。[OINV] T0内部联接[ dbo]。[INV1] T1打开T0。[DocEntry] = T1。[DocEntry]内部连接OITM T2打开T1。[ItemCode] = T2。[ItemCode] T1.BaseEntry = T7.DocEntry和T1上的内部连接DLN1 T7。 BaseLine = T7.LineNum和T1.BaseType ='15'内部连接T7.BaseEntry = T8.DocEntry和T7.BaseLine = T8.LineNum和T7.BaseType ='17'内部连接POR1 T9在T8.DocEntry = T9.BaseEntry和T8.LineNum = T9.BaseLine和T9.BaseType ='17'左外部在T10.BaseEntry = T9.DocEntry和T10.BaseLine = T9.LineNum和T10.BaseType ='22'上向左连接PCH1 T10 在T3上联接OITM T3.Itemcode = T1.U_tri_origitem在T4上联接OMRC T4.FirmCode = T3。在T5上的FirmCode左联接JOIN INV12 T5。[DocEntry] = T0。[DocEntry]其中T1.WhsCode IN('DROPSHIP' ,'DS')--//投递订单-基于销售订单的PO请求-使用在此订单中找到的成本:AP发票,采购订单,PO 请求INSERT INTO #Temp_MfgOrg选择T0。[DocDate],T0。[DocNum],T0。[CardCode],T0。[CardName],T1。[DocEntry],T5。[StreetS],T5。[BuildingS],T5。 [CityS],T5。[StateS],T5。[ZipCodeS],T1。[U_Ocode],null(T1.U_TRI_origItem,'')=''的情况为T1。[ItemCode],否则T3.ItemCode以ItemCode结尾, T1。[Dscription],T1。[Quantity],T1。[Price],T1。[LineTotal],当isull(T1.U_TRI_origItem,'')=''时为T1。[U_Manufacturer],否则T4.Firmname结尾为 制造商,案例当(T10.Price不为空或T10.Price> 0)然后(T10.Price * -1)其他情况当(T9.Price不为空或T9.Price> 0)然后(T9.Price * -1)其他ISNULL(T11.Price,0)* -1 END END作为来自[dbo]的" CalcCost"。[OINV] T0内部联接[dbo]。[INV1] T1在T0上。[DocEntry] = T1。[ DocEntry] T1上的内部联接OITM T2。[ItemCode] = T2。[ItemCode]左外联接DLN1 T7在T1.BaseEntry = T7.DocEntry和T1.BaseLine = T7.LineNum和T1.BaseType ='15'左外联接 T7.BaseEntry = T8.DocEntry和T7.BaseLine = R8.LineNum和T7.BaseType = RDR1 T8 T8.DocEntry = T11.BaseEntry和T8.LineNum = T11.BaseLine和T11.BaseType上的'17'左外部联接PRQ1 T11 T8.DocEntry = T9.BaseEntry和T8.LineNum ='17'左外部联接POR1 T9 T9.BaseLine和T9.BaseType ='17'左外部在T10.BaseEntry = T9.DocEntry和T10.BaseLine = T9.LineNum和T10.BaseType ='22'上连接PCH1 T10.T3.Itemcode =左外部联接OITM T3 T1.U_tri_origitem T4上的左外连接OMRCT4。FirmCode= T3.T5上的FirmCode左外连接INV12 T5。[DocEntry] = T0。[DocEntry]其中T1.WhsCode IN(" DROPSHIP"," DS")和T11。 DocEntry不为空-插入到#Temp_MfgOrg SELECT T0。[DocDate],T0。[DocNum],T0。[CardCode],T0。[CardName],T1。[DocEntry],T5。[StreetS],T5。[ BuildingS],T5。[CityS],T5。[StateS],T5。[ZipCodeS],T10.userfield1_char作为" U_Ocode",T10.article_key作为ItemCode,T10.description,ISNULL(T10.userfield2_float,0)作为"数量" ',将ISNULL((T10.userfield3_float),0)作为``价格'',将ISNULL(T10.userfield4_float,0)作为``行总计'',将T4.Firmname作为``制造商'',(( o.AVC_SAP_getSumMaterialPriceActualForPlanningElement_Particle(T1.U_TRI_plankey,T7.project_key,'','E000000000',T10.particle_key)/100)* -1)作为'CalcCost'FROM [dbo]。[OINV] T0 INNER JOIN [dbo]。[ INV1] T1 ON T0。[DocEntry] = T1。[DocEntry]和T1.U_TRI_plankey不是NULL内部联接OITM T2 ON T1。[ItemCode] = T2。[ItemCode]左外部联接trimergo.project_articles T10在T1.U_TRI_plankey = T10.planning_key和T10.budget_key ='E000000000'T1.U_TRI_plankey上的T7.planning_key和T10.budget_key = T7.budget_key左外连接OITM T3上的T7。 T4上的OMRC T4.FirmCode = T3.FirmCode左外连接INV12 T5上的​​T5。[DocEntry] = T0。[DocEntry] W0 T0。[CANCELED] NOT IN('C','Y')and T2.U_TRI_itemtypeproj =' 160-01'-插入#Temp_MfgOrg选择T0。[DocDate],T0。[DocNum],T0。[CardCode],T0。[CardName],T1。[DocEntry],T5。[StreetS],T5。[ BuildingS],T5。[CityS],T5。[StateS],T5。[ZipCodeS],T10.userfield3_char作为'U_ Ocode',T10.article_key作为ItemCode,T10.description,T1.Quantity作为'Quantity',T1.Price作为'Price',T1.LineTotal作为'Line Total',T4.Firmname作为'Manufacturer',(((dbo。 AVC_SAP_getSumMaterialPriceActualForPlanningElement_Particle(T1.U_TRI_plankey,T7.project_key,'','E000000000',T10.particle_key)/100)* -1)作为'CalcCost'FROM [dbo]。[OINV] T0 INNER JOIN [dbo]。[INV1] T1开启T0。[DocEntry] = T1。[DocEntry]和T1.U_TRI_plankey不是NULL内连接OITM T2开启T1。[ItemCode] = T2。[ItemCode]内连接trimergo.project_articles T1上的T10.U_TRI_partkey = T10.particle_key 并且T10.budget_key ='E000000000'左外部联接trimergo.planning T1上的T7.U_TRI_plankey = T7.planning_key和T10.budget_key = T7.budget_key左外部联接T3上的OITM T3.Itemcode = T10.article_key左外部联接T4上 T4.FirmCode = T3.FirmCode在T5上向左外部加入INV12 T5。[DocEntry] = T0。[DocEntry] T0。[CANCELED] NOT IN('C','Y')从#Temp_MfgOrg删除表#Temp_MfgOrg中选择*

我希望能够仅添加OINV表并将其链接,以便我可以引入更多字段,但这似乎不起作用。

谢谢

布莱恩

一周热门 更多>