注文のあるテーブルがあります。各注文には、、delivery_date
およびがありcollection_date
ます。
次のことを示す1週間のスケジュールとして注文を取得したいと思います。
したがって、水曜日のコレクションが火曜日の配信と木曜日の別の配信の間に表示されるように、時系列を表示したいと思います。
SQLでこれを行う方法について何かアイデアはありますか?
注文のあるテーブルがあります。各注文には、、delivery_date
およびがありcollection_date
ます。
次のことを示す1週間のスケジュールとして注文を取得したいと思います。
したがって、水曜日のコレクションが火曜日の配信と木曜日の別の配信の間に表示されるように、時系列を表示したいと思います。
SQLでこれを行う方法について何かアイデアはありますか?
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
使用しているデータベースに応じて、次のようなものになります。
ORDER BY CASE WHEN delivery_date > collection_date
THEN collection_date ELSE delivery_date END