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)
返回 true
或 false
,从中减去另一个 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/