1

我创建了一个数据库来跟踪呼叫中心环境中的客户服务跟进。我的单表有一个截止日期字段和一个状态字段(值:'Open'、'Due' 和 'Overdue')。

我想运行更新查询以在当前日期小于到期日期时自动将状态字段中指示的值更改为“打开”,当当前日期等于到期日期时自动更改为“到期”,以及“逾期'当当前日期超过到期日时。

我不知道如何编写表达式来实现该结果以及在哪个单元格中输入代码。有人可以提供帮助吗?

4

1 回答 1

1

使用Switch Function表达式将到期日期与今天的日期进行比较Date(),并返回适当的Status

将查询视图模式从设计视图更改为 SQL 视图,粘贴以下UPDATE语句文本,并将YourTable替换为表的名称。

UPDATE [YourTable] AS y
SET y.Status =
    Switch
        (
            y.[Due date] > Date(), 'Open',
            y.[Due date] = Date(), 'Due',
            y.[Due date] < Date(), 'Overdue'
        );

我不想尝试在设计视图中描述如何做到这一点。但是在 SQL 视图中添加语句文本后,您可以返回到设计视图以查看它在此处的显示方式。

请注意,要使状态保持最新,您必须UPDATE每天运行该状态。也许这是令人满意的。但是,您可以在需要时使用相同的表达式在查询中简单地派生Status 。这样,状态将始终是最新的,而不需要存储在表中的值。SELECTSwitchUPDATE

SELECT
    y.[Due date],
    Switch
        (
            y.[Due date] > Date(), 'Open',
            y.[Due date] = Date(), 'Due',
            y.[Due date] < Date(), 'Overdue'
        ) AS [Status]
FROM [YourTable] AS y;
于 2015-06-21T02:23:19.307 回答