2
我有兩列數據使用完全外部聯接進行排隊,但它包含兩個單獨的日期列,這使得排序方式具有挑戰性。按日期在完全外部聯接中的兩個單獨列上排序
表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時,我現在訂購的方式將不起作用。
謝謝。
馬丁,你就像一個網絡服務。即時,正確的答案。謝謝! – nycdan
upvote,太棒了! – Marco
我想提一件我做的事情。我將ISNULL(P.POSdate,L.date)作爲date1放入我的SELECT列表中,並按照date1排序。這使我能夠在結果集中顯示單個日期列。 – nycdan