我正在尝试获取修改日期超过 7 天的 ID 的最新记录,但是结果返回该 ID 的所有记录以及超过 7 天的记录。
SELECT USERID
FROM [PROJ]
INNER JOIN [NOTES] ON [PROJ].id = [NOTES].projID
WHERE [PROJ.STATUS] = 'ACTIVE'
AND [NOTES.MODIFIEDDATE] <= GETDATE() - 7
返回:
project userId modifieddate
1. 20190101 6 07/02/2019 *
2. 20190101 6 07/01/2019
3. 20190101 6 06/29/2019
4. 20190102 7 07/04/2019 *
5. 20190102 7 07/03/2019
*是我期望返回的。这将返回修改日期 < = 超过 7 天的所有 ID 注释的所有记录我只想要超过 7 天的最新注释(修改日期)。
尝试添加一个 have 子句
SELECT USERID
FROM [PROJ]
INNER JOIN [NOTES] ON [PROJ].id = [NOTES].projID
WHERE [PROJ.STATUS] = 'ACTIVE'
AND [NOTES.MODIFIEDDATE] <= GETDATE() - 7
GROUP BY USERID
HAVING MAX([NOTES.MODIFIEDDATE])
编辑:如果你只想要最新的,那么我会完全摆脱
AND [NOTES.MODIFIEDDATE] <= GETDATE() - 7
SELECT USERID
FROM [PROJ]
INNER JOIN [NOTES] ON [PROJ].id = [NOTES].projID
WHERE [PROJ.STATUS] = 'ACTIVE'
GROUP BY USERID
HAVING MAX([NOTES.MODIFIEDDATE])
编辑2:
SELECT USERID
FROM [PROJ]
INNER JOIN [NOTES] ON [PROJ].id = [NOTES].projID
WHERE [PROJ.STATUS] = 'ACTIVE'
AND [NOTES.MODIFIEDDATE] <= GETDATE() - 7
GROUP BY USERID, PROJECT
HAVING MAX([NOTES.MODIFIEDDATE])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句