sql - MS Access 查询设计中的此查询中出现缺少运算符错误

标签 sql ms-access

UPDATE Temp1 a 
  SET TimeStamp1 = CASE(
                     WHEN (a.TimeStamp1 IN
                       (SELECT TimeStamp1 
                          FROM a 
                          WHERE a.DealName = 'Disha Rufous' 
                          AND a.DealStep = 'Sent for Risk feedback')
                       - a.TimeStamp1 IN
                       (SELECT TimeStamp1 
                          FROM a 
                          WHERE a.DealName = 'Disha Rufous' 
                          AND a.DealStep = 'De-dupe confirmation received')
                       IS NOT NULL THEN '0' ELSE TimeStamp1 END) 
  WHERE Temp1.DealName = 'dede' 
  AND Temp1.StepName = 'Risk feedback addressed'

CASE 函数中的 THEN 处指示错误。

最佳答案

您的案例是:

CASE
    WHEN a IN (X) - a IN (Y) IS NOT NULL
        THEN...
    ELSE ...
END

我想您现在可以明白为什么它不起作用了,您的 WHEN 子句无效。 a IN (X) 返回 truefalse,从中减去另一个 true/false 值是没有意义的然后查看它是否为空。

我猜你想要:

UPDATE Temp1 a SET TimeStamp1 = CASE 
                                        WHEN a.TimeStamp1 IN(SELECT TimeStamp1 FROM Temp1 WHERE DealName = 'Disha Rufous' AND DealStep = 'Sent for Risk feedback') 
                                            AND a.TimeStamp1 IN(SELECT TimeStamp1 FROM Temp1 WHERE DealName = 'Disha Rufous' AND DealStep = 'De-dupe confirmation received') 
                                            THEN '0'  
                                        ELSE TimeStamp1 
                                END 
WHERE DealName = 'dede' AND StepName = 'Risk feedback addressed'

您可能需要将 WHEN 子句中的 AND 更改为 OR,具体取决于您的要求。

关于sql - MS Access 查询设计中的此查询中出现缺少运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38120484/

相关文章:

sql-server - 如何在Access VBA中检查ODBC SQL Server表是否具有写 Access 权限?

c# - 如何创建从 MS ACCESS 返回一系列行的查询?

sql - Ms Access 连接不同数据库中的表

database - 如何摆脱#func!出现在MS Access的查询表中?

mysql - SQL - 两个表的合并结果

sql - Oracle SQL 填充时间维度

sql - Microsoft Access-案例查询

sql - 如何将 SQL 子查询分配给变量并在同一上下文中使用它

php - 单个 `when` 子句与多个 `then` 子句

c# - 如何将此 SQL Order By 语句转换为 LINQ-To-Object?