【发布时间】:2021-06-15 19:55:04
【问题描述】:
期望的结果
获取所有 [Hours] 的小时总和,包括每个 [DevelopmentID] 的单个结果,其中 [Revision] 是最高值
例如 SUM 1、2、3、5、6(结果应该是 22.00)
我一直在尝试进行适当的分组。
DECLARE @CompanyID INT = 1
SELECT
SUM([s].[Hours]) AS [Hours]
FROM
[dbo].[tblDev] [d] WITH (NOLOCK)
JOIN
[dbo].[tblSpec] [s] WITH (NOLOCK) ON [d].[DevID] = [s].[DevID]
WHERE
[s].[Revision] = (
SELECT MAX([s2].[Revision]) FROM [tblSpec] [s2]
)
GROUP BY
[s].[Hours]
【问题讨论】:
-
SUM([s].[Hours])与GROUP BY [s].[Hours]发生冲突。您通常 GROUP BY 与您选择的列相同,除了那些作为设置函数的参数的列。 -
停止使用nolock 溅出你的代码
标签: sql sql-server sum sql-max