此内部联接中的行重复

2020-08-17 23:58发布

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

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


嗨,我的报告有很大问题。

某些行显示为重复。

表包含:


NFAL始终有1行
nbew> 2(或多或少的行)

ncir> 2(或多或少的行)

nlea> 2(或多或少的行)

我有这个JOIN:
有人知道如何改进此选择策略以删除重复的行吗?

 选择
        fal〜einri fal〜falnr
        fal〜falar fal〜patnr fal〜abrkz fal〜erdat fal〜erusr fal〜updat fal〜upusr fal〜storn fal〜stdat fal〜fatyp
         bew〜bewty bew〜bwart bew〜bwidt bew〜orgfa bew〜orgpf bew〜bwgr1 bew〜bwgr2
         cir〜lfdnr cir〜kostr cir〜patkz cir〜rangf
         lei〜falnr lei〜orgid lei〜leist lei〜lnrls lei〜anfoe lei〜erboe lei〜preis lei〜stals lei〜imeng lei〜taras lei〜anpoe
     表ti_alv的对应字段
     来自nfal AS fal
    内联接nbew作为fal〜falnr = bew〜falnr上的bew,并且fal〜einri = bew〜einri
    内连接ncir as cir on bew〜falnr = cir〜falnr
    内部联接nlei AS lei ON cir〜falnr = lei〜falnr
    fal〜einri在p_einri和
           fal〜falnr in p_falnr和
           fal〜erdat IN p_erdat和
           fal〜storn IN p_storn
           %_HINTS ORACLE'INDEX(" NFAL"" NFAL〜Z2")'
           。
     如果sy-subrc <> 0。
        消息"否",请参见" E型"。
     其他。
 

注意:不能选择ADJACENT DUPLICATES。

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

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


嗨,我的报告有很大问题。

某些行显示为重复。

表包含:


NFAL始终有1行
nbew> 2(或多或少的行)

ncir> 2(或多或少的行)

nlea> 2(或多或少的行)

我有这个JOIN:
有人知道如何改进此选择策略以删除重复的行吗?

 选择
        fal〜einri fal〜falnr
        fal〜falar fal〜patnr fal〜abrkz fal〜erdat fal〜erusr fal〜updat fal〜upusr fal〜storn fal〜stdat fal〜fatyp
         bew〜bewty bew〜bwart bew〜bwidt bew〜orgfa bew〜orgpf bew〜bwgr1 bew〜bwgr2
         cir〜lfdnr cir〜kostr cir〜patkz cir〜rangf
         lei〜falnr lei〜orgid lei〜leist lei〜lnrls lei〜anfoe lei〜erboe lei〜preis lei〜stals lei〜imeng lei〜taras lei〜anpoe
     表ti_alv的对应字段
     来自nfal AS fal
    内联接nbew作为fal〜falnr = bew〜falnr上的bew,并且fal〜einri = bew〜einri
    内连接ncir as cir on bew〜falnr = cir〜falnr
    内部联接nlei AS lei ON cir〜falnr = lei〜falnr
    fal〜einri在p_einri和
           fal〜falnr in p_falnr和
           fal〜erdat IN p_erdat和
           fal〜storn IN p_storn
           %_HINTS ORACLE'INDEX(" NFAL"" NFAL〜Z2")'
           。
     如果sy-subrc <> 0。
        消息"否",请参见" E型"。
     其他。
 

注意:不能选择ADJACENT DUPLICATES。

付费偷看设置
发送
4条回答
四川大学会员
1楼 · 2020-08-18 00:43.采纳回答

你好 Ivan ,

很显然,正是 EINRI 字段引起了重复。 您使用的所有表格中都有该字段的直接链接。 但是您甚至没有在两个表之间加入该字段 。 在所有表中都需要将EINRI和FALNR两个字段都加入。 因此,我建议最初在所有表之间使用该字段 EINRI (也加入该字段),如果未获取记录,则在一对表之间使用 Left外连接 (在一对一之间通过试用)。 这应该可以解决您的问题。

(您在语法的内部连接的第一行中注释了该字段 EINRI 的连接)

注意

KJogeswaraRao

悻福寶寶
2楼-- · 2020-08-18 00:40

请注意DISTINCT可能也会影响性能。

通常可以用来伪装编写不当的SQL语句/快速破解以使其正常工作。

根据公认的答案,正确设计查询会更好一些

大道至简
3楼-- · 2020-08-18 00:49

伊万·迪亚兹(Hi Ivan Diaz)

尝试一下

fal〜einri fal〜falnr

fal〜falar fal〜patnr fal〜abrkz fal〜erdat fal〜erusr fal〜updat fal〜upusr fal〜storn fal〜stdat fal〜fatyp

bew〜bewty bew〜bwart bew〜bwidt bew〜orgfa bew〜orgpf bew〜bwgr1 bew〜bwgr2

cir〜lfdnr cir〜kostr cir〜patkz cir〜rangf

lei〜falnr lei〜orgid lei〜leist lei〜lnrls lei〜anfoe lei〜erboe lei〜preis lei〜stals lei〜imeng lei〜taras lei〜anpoe

进入表ti_alv的对应字段

来自nfal AS fal

内联接nbew作为fal〜einri = bew〜einri和fal〜falnr = bew〜falnr和fal〜srorn = bew〜storn上的bew ON

内部连接ncir作为cir上的cir on bew〜einri = cir〜einri和bew〜falnr = cir〜falnr和bew〜storn = cir〜storn

INNER JOIN nlei AS lei ON cir〜einri = lei〜falnr和cir〜falnr = lei〜falnr和cir〜storn = lei〜storn and bew〜LFDNR = lei〜LFDBEW

fal〜einri在p_einri中并且

fal〜falnr输入p_falnr和

fal〜erdat IN p_erdat AND

fal〜storn IN p_storn

%_HINTS ORACLE'INDEX(" NFAL"" NFAL〜Z2")'



Baoming ROSE
4楼-- · 2020-08-18 00:37

嗨,

尝试在select中使用DISTINCT。

SELECT DISTINCT

fal〜 einri fal〜falnr

fal〜falar fal〜patnr fal〜abrkz ......

致谢,

Renjith

一周热门 更多>