4

注文のあるテーブルがあります。各注文には、、delivery_dateおよびがありcollection_dateます。

次のことを示す1週間のスケジュールとして注文を取得したいと思います。

したがって、水曜日のコレクションが火曜日の配信と木曜日の別の配信の間に表示されるように、時系列を表示したいと思います。

SQLでこれを行う方法について何かアイデアはありますか?

4

2 に答える 2

9

Union ALLを使用して、各注文レコードを2つのレコードとして扱います。1つは配達用、もう1つはコレクション用です。別の日付(修復?)がある場合は、同様のフィールドを持つ別のサブクエリを結合します。

あなたが注文表に仕様を提供しなかったので、私はこれをたくさん作りました。

select *
from (
   Select OrderID
       , 'Colection' as VisitType
      , Collection_Date as VisitDate
   from Orders
   Union All
   Select OrderID
     , 'Delivery' as VisitType
     , Delivery_Date as VisitDate
  from Orders
) as v
order by v.VisitDate
于 2012-05-08T21:29:01.260 に答える
7

使用しているデータベースに応じて、次のようなものになります。

ORDER BY CASE WHEN delivery_date > collection_date 
         THEN collection_date ELSE delivery_date END
于 2012-05-08T21:29:52.883 に答える