sql - SQL从只有1个日期的表中选择最大日期
问题描述
我有这个 SQL 代码:
SELECT MH.[PM#],
MH.[Work Done],
MH.[Date Done],
MH.Comments,
MH.[SEM Completed by]
FROM [Maintenance History tbl] AS MH
WHERE (((MH.[Work Done])="LT")
AND ((MH.[Date Done]) =
( SELECT Max(MH2.[Date Done])
FROM [Maintenance History tbl] AS MH2
WHERE MH2.[PM#] = MH.[PM#]
)
));
这将选择完成日期最近的四个字段。
如果只有 1 行,这将不起作用。
如果只有 1 行,我怎样才能让它返回最大日期?
解决方案
我认为您错过了Work Done = "LT"
子查询中的过滤条件。尝试添加它:
SELECT MH.[PM#],
MH.[Work Done],
MH.[Date Done],
MH.Comments,
MH.[SEM Completed by]
FROM [Maintenance History tbl] AS MH
WHERE (MH.[Work Done] = "LT"
AND (MH.[Date Done] =
( SELECT Max(MH2.[Date Done])
FROM [Maintenance History tbl] AS MH2
WHERE MH2.[PM#] = MH.[PM#]
and MH2.[Work Done] = "LT"
)
));
推荐阅读
- matlab - Matlab 绘制超过 2 个 y 轴
- java - 当我使用@ManyToOne 时,为什么我不能在我的数据库中插入一行?
- python - 我们如何使用 paramiko 从服务器连接到 mysql?
- sql - 如何在 SQL Server 中将一个表列行分配给另一个表列值
- javascript - 从具有不同索引的数组中输出元素
- r - 在 bsModal 中更新动态呈现的 UI
- javascript - 匹配图片javascript基本益智游戏
- c++ - 令人困惑的成语名称 RAII
- flutter - 在颤动中使用可触摸的自定义油漆点击时如何改变颜色?
- flutter - keeping repository instance "alive" with bloc