完全外部結合を使用して 2 つの列のデータを並べていますが、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 が含まれている可能性がある場合に、これを適切に並べ替えるにはどうすればよいかということです。両方の列が 1 つの NULL の場合、現在の順序付け方法は機能しません。
ありがとう。