查询:查找具有空条目的最早日期,它仍然适用于没有空条目的日期

Query: Find the earliest date with a null entry which still works with no null entries

我正在构建一个为用户显示下一个截止日期的查询。日期数保持不变,但截止日期会发生变化,具体取决于有多少条记录有用户的评论。

SELECT tbl_Description.Sample, 
       tbl_Description.User, 
       Min(tbl_Data.TestDate) As DueDate
  FROM tbl_Description 
 INNER 
  JOIN tbl_Data 
    ON tbl_Description.DescriptionID = tbl_Data.DateID
 WHERE tbl_Data.Comment IS NULL
 GROUP 
    BY tbl_Description.Sample, 
       tbl_Description.User;

但是,当tbl_Data的每条记录都有评论时,查询returns条空记录。这可能会发生,因为 WHEREIS NULL 语句 returns 如果每条记录都存在则什么都没有。最好,我仍然希望空记录与 [DueDate] 字段中的内容一起出现,例如空白或“完整”评论。

tbl_Description

Sample          User
1               Betty

tbl_Data (v1)

Date          Comments
05/01/2018    Orange
05/08/2018    Orange-Brown
05/15/2018
05/22/2018

查询输出

Sample          User          DueDate
1               Betty         05/15/2018

tbl_Data (v2)

Date          Comments
05/01/2018    Orange
05/08/2018    Orange-Brown
05/15/2018    Brown
05/22/2018    Brown-Black

查询输出(查询 returns 目前没有)

Sample          User          DueDate
1               Betty         Complete

如有任何帮助,我们将不胜感激!

现在知道我们也可以按 DescriptionID 分组,我建议从 tbl_Data 中查询最小 TestDate 的记录,而不是 Comment 单独和(外部)将结果加入 table tbl_Description。这样,每个 Description 都包含在结果中,并且当 Description 的所有 Dates 都有一个CommentDueDate会出现空白:

SELECT tbl_Description.Sample, tbl_Description.User, Uncommented.DueDate
FROM tbl_Description 
    LEFT JOIN (
        SELECT tbl_Data.DateID, Min(tbl_Data.TestDate) AS DueDate
        FROM tbl_Data
        WHERE (((tbl_Data.Comment) Is Null))
        GROUP BY tbl_Data.DateID
    ) AS Uncommented ON tbl_Description.DescriptionID = Uncommented.DateID;