МАКС. ДАТА с несколькими таблицами / Внутренние объединения в жабе / Oracle - PullRequest
0 голосов
/ 14 января 2019

Я использую Toad / Oracle всего несколько недель, поэтому все еще изучаю кодирование и т. Д. У меня есть знания по SQL-коду в Access, и сейчас я пытаюсь изучить Oracle.

Мне нужно вернуть максимальную дату из UCMRBILDAT из таблицы BIC / AZUCDMO0100, но только из контрактов, которые содержатся в связанной таблице 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 голосов
/ 14 января 2019

Чтобы получить максимальное значение "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 вместе, но в вашем запросе они не указаны. Найдите эти поля, подключите их к вышеприведенному запросу, и вы получите желаемый результат.

...