MS ACCESS VBA ORDER BY CASE当

MS ACCESS VBA ORDER BY CASE当

问题描述:

我很多orders in my FactoryMS ACCESS VBA ORDER BY CASE当

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

我试图建立一个SQL的顺序由minimum Date of the two columns

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 Access问题消息。也许把它写正确 问题按摩附

enter image description here

谢谢

在MS Access,你必须这样使用的,而不是个案IIF:

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

谢谢你的帮助 这是关闭,但如果我需要按两列排序,我应该如何写? 例如: ORDER BY IIF(DeliveryDate> PromiseDate,(PromiseDate DeliveryDate),(DeliveryDate PromiseDate)); 这不起作用 – idanVaza

+0

这没有任何意义。只有一列。请重新说明。 – Gustav

+0

第二个顺序对结果没有影响。只有当您想在PromiseDate和DeliveryDate相等时按第三列排序。然后你会在整个IIF后面添加第三列, – Mono