我有多个按"PR“和"Gate”分组的任务,它们都有开始和完成日期。我希望查询查找最早的开始日期和最晚的完成日期。如果在完成日期中有任何NULL (意味着不是该门(任务组)的所有任务都完成了),那么它应该返回完成日期为NULL。

我试过了:
SELECT PR, Gate, MIN(T_Start) AS Start_Date, MAX(T_Complete) AS
Completion_Date
FROM qry_Tasks_Extended
GROUP BY PR, Gate;这导致无论是否有NULL,Completion_Date字段都具有最新的现有日期。

提前感谢!
发布于 2019-05-18 21:47:24
使用iif()表达式:
SELECT PR, Gate, MIN(T_Start) AS Start_Date,
IIF(COUNT(*) = COUNT(T_COMPLETE),
MAX(T_Complete),
NULL
) AS Completion_Date
FROM qry_Tasks_Extended
GROUP BY PR, Gate;在任何其它数据库中,您将使用标准case表达式( MS Access不支持):
SELECT PR, Gate, MIN(T_Start) AS Start_Date,
(CASE WHEN COUNT(*) = COUNT(T_COMPLETE) THEN MAX(T_Complete)
END) AS Completion_Date
FROM qry_Tasks_Extended
GROUP BY PR, Gate;https://stackoverflow.com/questions/56199535
复制相似问题