MS ACCESS VBA ORDER BY CASE时

时间:2016-06-08 07:28:23

标签: sql ms-access sql-order-by

我很多orders in my Factory

我们定期完成工作的时间是10天,但有时我们向客户承诺会缩短(假设为5天)。

我尝试构建一个按minimum Date of the two columns

排序的SQL
SELECT id, Status, DeliveryDate, PromiseDate
FROM CustomerOrderT
WHERE Status > 2 and Status <7 
ORDER BY CASE WHEN DeliveryDate > PromiseDate then PomiseDate ELSE DeliveryDate END;

但是我收到来自ms访问的问题消息。也许写得正确 按摩附带问题

enter image description here

谢谢

1 个答案:

答案 0 :(得分:1)

在MS Access中,您必须使用IIF而不是Case,如下所示:

SELECT id, Status, DeliveryDate, PromiseDate
FROM CustomerOrderT
WHERE Status > 2 and Status <7 
ORDER BY IIF(DeliveryDate > PromiseDate, PromiseDate, DeliveryDate);