SQL 到 select 最大日期 table 只有 1 个日期
SQL to select max date from table with only 1 date
我有这个 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 行,我怎样才能使这个 return 成为最大日期?
我想你漏掉了子查询里面的过滤条件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"
)
));
我有这个 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 行,我怎样才能使这个 return 成为最大日期?
我想你漏掉了子查询里面的过滤条件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"
)
));