Toad / Oracle中具有多个表/内部联接的MAX DATE

时间:2019-01-14 11:48:47

标签: oracle join maxdate

我只用了Toad / Oracle几周了,所以我还在学习编码等,我对Access中的SQL代码有了解,现在尝试学习Oracle。

我需要从tbl BIC / AZUCDMO0100的UCMRBILDAT返回最大日期,但仅从链接的tbl LH_DAT中包含的合同中返回最大日期

我也尝试过使用MAX UCMRBILDAT,但这没用。

UCMRBILDAT(/ BIC / AZUCDMO0100)

UC_MRESULT(/ BIC / AZUCDMO0100)

UC_MRSTAT(/ BIC / AZUCDMO0100

UC_MRCAT(/ BIC / AZUCDMO0100)

CONTRACT_NUMBER(LH_DAT)

UC_MR_NUMB(/ BIC / AZUCDMO0100)+(/ BIC / AZUCDMO0200)

SELECT UCMRBILDAT,
   UC_MRESULT,
   UC_MRSTAT,
   UC_MRCAT
  FROM LH_DAT
  (  SELECT CONTRACT_NUMBER, MAX (UCMRBILDAT) MXBD
        FROM SAPSR3."/BIC/AZUCDMO0100"
    GROUP BY CONTRACT_NUMBER) GMR    
   LEFT OUTER JOIN SAPSR3."/BIC/AZUCDMO0200"
      ON (CONTRACT_NUMBER = UCCONTRACT)
   INNER JOIN SAPSR3."/BIC/AZUCDMO0100"
      ON ("/BIC/AZUCDMO0200".UC_MR_NUMB = "/BIC/AZUCDMO0100".UC_MR_NUMB)
 WHERE     CONTRACT_NUMBER = '2000014420'
   AND UCMRBILDAT = MXBD
   AND MR.CONTRACT_NUMBER = GMR.CONTRACT_NUMBER

自BIC / AZUCDMO0100起的最大开票日期,但仅适用于表LH_DAT中包含的合同

编辑在下面的脚本中需要UCMRBILDAT的最大日期

SELECT CONTRACT_NUMBER,
   UCMRBILDAT,
   UC_MRESULT,
   UC_MRCAT
  FROM LH_DAT
   LEFT OUTER JOIN SAPSR3."/BIC/AZUCDMO0200"
      ON (CONTRACT_NUMBER = UCCONTRACT)
   INNER JOIN SAPSR3."/BIC/AZUCDMO0100"
      ON ("/BIC/AZUCDMO0200".UC_MR_NUMB = "/BIC/AZUCDMO0100".UC_MR_NUMB)
 WHERE     CONTRACT_NUMBER = '2000014420'
   AND "/BIC/AZUCDMO0200".SOURSYSTEM = 'SP'
   AND "/BIC/AZUCDMO0200".UCDELE_IND <> 'X'

1 个答案:

答案 0 :(得分:0)

要获取"BIC/AZUCDMO0100".UCMRBILDAT的最大值,其中要使用LH_DAT的链接值,则要使用:

SELECT MAX(ba.UCMRBILDAT)
  FROM SAPSR3."BIC/AZUCDMO0100" ba
  INNER JOIN LH_DAT ld
    ON ld.some_field = ba.some_field

必须存在将"BIC/AZUCDMO0100"LH_DAT链接在一起的字段,但是在您的查询中未指定它们。找到这些字段,将它们插入上面的查询中,您应该得到想要的结果。