我有一個訂單表。每個訂單都有一個delivery_date
和一個collection_date
。2個日期列的SQL訂單
我想檢索訂單作爲一週的時間表,顯示接下來要做的事情。
所以我想我要顯示的時間順序,以便星期三的收集出現在星期二的送貨和星期四的另一送貨之間。
有關如何使用SQL做到這一點的任何想法?
我有一個訂單表。每個訂單都有一個delivery_date
和一個collection_date
。2個日期列的SQL訂單
我想檢索訂單作爲一週的時間表,顯示接下來要做的事情。
所以我想我要顯示的時間順序,以便星期三的收集出現在星期二的送貨和星期四的另一送貨之間。
有關如何使用SQL做到這一點的任何想法?
使用Union ALL,我將每個訂單記錄看作兩條記錄:一個用於交付,另一個用於集合。如果您有其他日期(修復?),您可以將另一個子查詢與類似的字段組合在一起。
由於您沒有在您的訂單表中提供任何規格,我彌補了很多。
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
您正在使用哪種datbase線的東西? MySQL,Oracle? MSSQL? SQLite的?他們以不同的方式處理日期數據並使用不同命名的函數。任何答案都可能取決於特定的供應商。 – FrustratedWithFormsDesigner