MS Access:查询以添加 "If" 条件
MS Access : Query to add "If" condition
我有以下 MS Access 查询:
SELECT a.*
FROM Version_Change AS a
RIGHT JOIN
(SELECT VERSION,
min(ChangeDate) AS minimumdate,
ObjectID
FROM Version_Change
GROUP BY ObjectID,
VERSION) AS b ON(a.VERSION = b.VERSION)
AND (a.ChangeDate = b.minimumdate)
AND (a.ObjectID = b.ObjectID);
问题 是列 "ChangeDate" 有时可以是 blank.So 我希望我的查询也显示 "ChangeDate" 的字段一片空白。如何将此条件整合到我的查询中?
如果一个版本和 objectid 的更改日期都是 NULL
,则 min(ChangeDate)
也将为空,并且连接不会成功,因为 a.ChangeDate = NULL
将被评估为NULL 这不是真的。
您可以这样更改开启条件:
ON (a.version = b.version)
AND
(
(a.ChangeDate = b.minimumdate)
OR
(a.ChangeDate IS NULL AND b.minimumdate IS NULL)
)
AND (a.ObjectID = b.ObjectID);
你可以用老办法 Nz:
AND (Nz(a.ChangeDate,b.minimumdate) = b.minimumdate)
我有以下 MS Access 查询:
SELECT a.*
FROM Version_Change AS a
RIGHT JOIN
(SELECT VERSION,
min(ChangeDate) AS minimumdate,
ObjectID
FROM Version_Change
GROUP BY ObjectID,
VERSION) AS b ON(a.VERSION = b.VERSION)
AND (a.ChangeDate = b.minimumdate)
AND (a.ObjectID = b.ObjectID);
问题 是列 "ChangeDate" 有时可以是 blank.So 我希望我的查询也显示 "ChangeDate" 的字段一片空白。如何将此条件整合到我的查询中?
如果一个版本和 objectid 的更改日期都是 NULL
,则 min(ChangeDate)
也将为空,并且连接不会成功,因为 a.ChangeDate = NULL
将被评估为NULL 这不是真的。
您可以这样更改开启条件:
ON (a.version = b.version)
AND
(
(a.ChangeDate = b.minimumdate)
OR
(a.ChangeDate IS NULL AND b.minimumdate IS NULL)
)
AND (a.ObjectID = b.ObjectID);
你可以用老办法 Nz:
AND (Nz(a.ChangeDate,b.minimumdate) = b.minimumdate)