запрос выбора оракула на основе других условий уровня строки таблицы - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу найти номер заказа из таблицы # заказов, где DelivaryDateRevision меньше макс ревизий из каждой страны (таблица # maxrevisions).Код страны не является внешним ключом для другой таблицы.

Могу ли я получить записи из таблицы заказов, если в таблице maxrevisions отсутствует код страны.

Таблица: заказы

OrderNumber | CountryCode | DelivaryDateRevision
123--------------- IN-------------------9  
234--------------- US-------------------3
238--------------  IN------------------ 3

таблица: maxrevisions

CountryCode|  MaxRevision
IN ---------------6
US--------------- 4

Мой запрос:

SELECT distinct o.ordernumber,o.countrycode
FROM orders o
     left outer join maxrevisions m
       on o.CountryCode=m.CountryCode
       and
       o.DelivaryDateRevision<rs.MaxRevision;

, но я получаю неправильный результат.Могу ли я получить помощь здесь?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018
Select 
  ordernumber,
  countrycode,
  deliverydateversion 
from orders o 
where deliverydateversion > 
(
  select max(revision) 
  from maxrevisiontab 
  where countrycode= o.countrycode
)

Пожалуйста, измените имена таблиц и столбцов в соответствии с вашей структурой.

0 голосов
/ 28 ноября 2018

Ваше основное упущение - это предложение WHERE, в котором сравниваются две ревизии:

SELECT
    o.ordernumber,
    o.countrycode
FROM orders o
LEFT JOIN maxrevisions m
    ON o.CountryCode = m.CountryCode
WHERE
    o.DelivaryDateRevision < m.MaxRevision OR m.MaxRevision IS NULL;

enter image description here

Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...