我有两列数据我正在使用完全外连接排列,但它包含两个单独的日期列,这使得排序具有挑战性。
表 1 包含产品的销售排名数据。表 2 是同一产品的实际销售数据。
每个表都可能有另一个没有的日期条目。
因此,设想在完全连接之后,我们最终会得到类似以下简化示例的内容:
ProdID L.Date P.Date Rank Units
101 null 2011-10-01 null 740
101 2011-10-02 2011-10-02 23 652
101 2011-10-03 null 32 null
这是我用来提取这些数据的查询:
select L.ListID, L.ASIN, L.date, L.ranking, P.ASIN, P.POSdate, P.units from ListItem L
full outer join POSdata P on
L.ASIN = P.ASIN and
L.date = P.POSdate and
(L.ListID = 1 OR L.ASIN is null)
where (L.ASIN = 'xxxxxxxxxx' and L.ListID = 1) or
(P.ASIN = 'xxxxxxxxxx' and L.BookID is null)
order by POSdate, date
它有点复杂,因为产品可能出现在多个列表中,所以我也必须考虑到这一点,但它会返回我需要的数据。如果有人有改进它的建议,我当然愿意接受。
问题是,当两个日期列中可能至少有一些 NULL 时,我该如何正确排序。当两列都有一个 NULL 时,我现在订购的方式将不起作用。
谢谢。