【问题标题】:MS ACCESS VBA ORDER BY CASE WhenMS ACCESS VBA 按案例排序
【发布时间】:2016-06-08 16:10:57
【问题描述】:

我很多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 访问中收到了一条问题消息。也许写对了 附上问题按摩

谢谢

【问题讨论】:

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


    【解决方案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);
    

    【讨论】:

    • 感谢您的帮助,这是关闭,但如果我需要按两列对每个案例进行排序,我应该如何编写它?例如:ORDER BY IIF(DeliveryDate > PromiseDate, (PromiseDate DeliveryDate) , (DeliveryDate PromiseDate));这不起作用
    • 这毫无意义。只有一列。请改写。
    • 第二个顺序对结果没有影响。仅当您想在 PromiseDate 和 DeliveryDate 相等时按第三列排序。然后,您将在整个 IIF 后面添加第三列,并添加 ,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    相关资源
    最近更新 更多