MS ACCESS VBA ORDER BY CASE当
问题描述:
我很多orders in my Factory
。MS 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问题消息。也许把它写正确 问题按摩附
谢谢
答
在MS Access,你必须这样使用的,而不是个案IIF:
SELECT id, Status, DeliveryDate, PromiseDate
FROM CustomerOrderT
WHERE Status > 2 and Status <7
ORDER BY IIF(DeliveryDate > PromiseDate, PromiseDate, DeliveryDate);
谢谢你的帮助 这是关闭,但如果我需要按两列排序,我应该如何写? 例如: ORDER BY IIF(DeliveryDate> PromiseDate,(PromiseDate DeliveryDate),(DeliveryDate PromiseDate)); 这不起作用 – idanVaza
这没有任何意义。只有一列。请重新说明。 – Gustav
第二个顺序对结果没有影响。只有当您想在PromiseDate和DeliveryDate相等时按第三列排序。然后你会在整个IIF后面添加第三列, – Mono