我正在使用 MS Access
下面的 SQL 使用具有结束日期的 tblTorTee 记录的数量更新父 tblContact 记录中的 CurrNumTees 字段(这不是我想要的最终效果,但我提供它作为起点。
UPDATE tblContact
INNER JOIN tblTorTee ON tblContact.ContactId = tblTorTee.TorId
SET tblContact!CurNumTees = DCount("[tblTorTee.EndDate]",
"tbltortee","Torid = " & [ContactId]);
我需要用 tblTorTee 中没有 EndDate 的记录数更新 CurrNumTees 字段,换句话说,该字段为空白。我试过在各种组合和位置使用 WHERE 和 HAVING 和 IS NULL,但没有成功。你能帮我指明正确的方向吗?
最佳答案
MS Access COUNT 函数不计算空值,因此我认为您必须分两个阶段执行此操作。
首先像这样创建一个查询:
SELECT TorId, IIF(ISNULL(EndDate),1,0) AS isN
FROM tblTorTee
WHERE EndDate IS NULL;
并保存为QryEndDateNull
现在您可以像这样运行更新查询:
UPDATE tblContact
SET tblContact.CurNumTees = DSUM("IsN","QryEndDateNull","TorId = " & [ContactID]);
关于sql - 在涉及连接的更新查询中使用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45921964/