格式化搜索-2个表中的值

2020-09-02 07:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)所有人, 我刚接触SAP(使用...

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

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


所有人,

我刚接触SAP(使用SAP和SQL大约需要2-3个月),我想知道您是否可以帮助我,或者有人可以提供一些建议。

我需要在销售订单上执行格式化搜索,以在2个表(QUT1和OITM)中查找值。 首先,它应该查询QUT1,如果该值为null或不符合条件,则应从OITM中获取它。 我提出了两个不同的查询:

选择(COALESCE(CASE(案例),当T1时。" U_ItemDesc_2"为NULL


T0时。" FrgnName"

ELSE
T1 。"" U_ItemDesc_2"

END AS varchar),''))AS" Item Descr 2 Joined"来自OITM T0左外连接QUT1 T1 ON T0。" ItemCode" = T1。" ItemCode" WHERE T0。" ItemCode" = $ [$ 38.1.0]和T1。" ItemCode" = $ [$ 38.1.0]

此查询仅显示QUT1中的内容,并且如果该值为null或不满足条件,则不显示OITM中的值。

第二个查询:

从" SBO_JUMEL"中选择COALESCE(NULLIF(T0。" U_ItemDesc_2","),T1。" FrgnName")。" QUT1" T0右联接" SBO_JUMEL"。" OITM" T1接通T0。" ItemCode" = T1。" ItemCode"在T0上的内部联接T2。" DocEntry" = T2。" DocEntry" WHERE T2。" DocStatus" ='O'AND T0。" ItemCode" = $ [$ 38.1.0]和T1。" ItemCode" = $ [$ 38.1.0]按T2排序。" DocTime" ASC

此查询是相同的,如果QUT1值为null,则仍然不显示OITM字段中的值。

有人使用过这种格式的搜索并且可以给出一些指示吗? 任何帮助将不胜感激

5条回答
昵称总是被占用
2020-09-02 08:29

嗨,保罗,

您的查询有很多错误,那么从哪里开始呢? 首先,我要为您的努力表示赞赏。

快速答案并不能为您提供一个很好的解决方案:切换FROM子句,以便从" 后退"表格。 然后使用LEFT OUTER联接,您将从QUT1表中获得一个值或NULL,这将使COALESCE函数正常工作。

 FROM OITM T1
      左外联接QUT1 T0 ON T1.ItemCode = T0.ItemCode
      左外部联接OQUT T2 ON T0.DocEntry = T2.DocEntry 

但是,由于可以(在技术上)在一个报价中多次输入一个项目,并且可以同时打开多个报价,因此查询 照原样,变得非常不稳定。 仅当那时只有一个给定物料处于打开状态的报价时,它才有效。

假定您从报价中绘制销售订单(使用复制到按钮 在"报价"表单上或"订单"表单上的"复制" 按钮上),您可以将订单绑定到其特定的报价:

 SELECT COALESCE(NULLIF(NULLIF(T1。[  U_ItemDesc_2],"),''),T0。[FrgnName],'Aaargh')
 从OITM T0
           左外联接QUT1 T1接通T0.ItemCode = T1.ItemCode
 T0.ItemCode = $ [RDR1.ItemCode]
      AND T1.DocEntry = $ [RDR1.BaseEntry]
      AND T1.LineNum = $ [RDR1.LineNum]
 

致谢

Johan

P.S。 感谢您教我有关NULLIF函数的知识。 我还不知道那个。 非常有用。

一周热门 更多>