我想从DelivaryDateRevision少于每个国家/地区的最大修订版本(table#maxrevisions)的table#orders中查找订单号。国家/地区代码不是另一个表的外键。
如果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;
但是我得到了错误的结果。我可以在这里得到任何帮助吗?
答案 0 :(得分:2)
您的主要遗漏似乎是比较两个修订版本的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;
答案 1 :(得分:0)
Select
ordernumber,
countrycode,
deliverydateversion
from orders o
where deliverydateversion >
(
select max(revision)
from maxrevisiontab
where countrycode= o.countrycode
)
请根据您的结构更改表名和列名。