2

完全外部結合を使用して 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 の場合、現在の順序付け方法は機能しません。

ありがとう。

4

1 に答える 1

3

ORDER BY ISNULL(P.POSdate,L.date)私が思うに必要なことをするべきですか?

于 2011-10-20T13:51:39.870 に答える