我发现我无法在sql查询的select语句中获得某些别名的MAX()吗?
示例:
Select
CASE WHEN CompletionDate IS NOT NULL THEN DATEDIFF(d, CreatedDate, CompletionDate) ELSE NULL END AS DaysLong
from CombinedMastervw
WHERE CreatedDate Between '03/01/2019 23:59:59.991' AND '04/01/2019 23:59:59.991'
ORDER BY MAX(dayslong)
因此,我的问题是在MAX(dayslong)
上,我是否必须最终在SELECT
语句中使用相同的代码完成一个Max?
答案 0 :(得分:4)
您应该能够使用别名。
尝试:
按天订购
Max(dayslong)将返回您选择的表中的单个最大值,因此您无法按此顺序进行排序。
答案 1 :(得分:1)
如果您希望max()
使用top (1)
和order by
:
Select TOP (1) DATEDIFF(day, CreatedDate, CompletionDate) DaysLong
from CombinedMastervw
WHERE CreatedDate >= '2019-03-01' AND
CreatedDate < '2019-04-02'
ORDER BY dayslong DESC;
我更改了日期比较,因此整整是一整天。如果您真的想在午夜之前几秒钟,那么可以改回您的版本。