我有一个订单表。每个订单都有一个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