连接三个DB2表

jv4diomz  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(197)

我必须为我的报告连接三个表。
表一:

DTL_MTCH_KEY  TRAN_AM   SYS_IND    
  1234567       10        
  1234567       10
  1234567       10
  1234567       10
  2222222       25         Y
  2222222       25         Y

表二:

DTL_MTCH_KEY    SUM_TRAN_AM     JR_NAME
   1234567          40          AAAAAAA
   2222222          50          BBBBBBB

表三:

DTL_MTCH_KEY   SYS_IND    ERR_MSG 
   2222222        Y       ISSUE WITH PRODUCT

我的输出必须如下所示

DTL_MTCH_KEY  TRAN_AM   JR_NAME  ERR_MSG 
  1234567       10      AAAAAAA             
  1234567       10      AAAAAAA
  1234567       10      AAAAAAA
  1234567       10      AAAAAAA
  2222222       25      BBBBBBB  ISSUE WITH PRODUCT       
  2222222       25      BBBBBBB  ISSUE WITH PRODUCT

的要求。
1.我想把1号桌、2号桌和3号桌连接起来。
1.列出表1中的所有值,并从表2中获取JR_NAME。
1.每当表1的SYS_IND为Y时,则从表3获取ERR_MSG。
1.我必须在单个查询中执行此操作。
我在下面尝试了一下,但它显示了重复行。我的TABLE1中有229002行,但我的查询显示了385717行。

Select A.DTL_MTCH_KEY, A.TRAN_AM, B.JR_NAME, C.ERR_MSG 
FROM TABLE1 A 
     LEFT JOIN TABLE2 B 
        ON (A.DTL_MTCH_KEY = B.DTL_MTCH_KEY) 
     LEFT JOIN TABLE3 C 
        ON (A.DTL_MTCH_KEY = C.DTL_MTCH_KEY 
            AND C.SYS_IND = 'Y') 
WHERE DATE = '2022-05-26'

提前致谢

vm0i2vca

vm0i2vca1#

SELECT A.DTL_MTCH_KEY,A.TRAN_AM,B.JR_NAME,C.ERR_MSG
FROM Table1 A 
INNER JOIN Table2 B on A.DTL_MTCH_KEY = B.DTL_MTCH_KEY
LEFT JOIN Table3 C on A.DTL_MTCH_KEY = C.DTL_MTCH_KEY AND A.SYS_IND = C.SYS_IND AND A.SYS_IND ='Y'
5tmbdcev

5tmbdcev2#

请尝试使用以下查询

相关问题