多个记录的TSQL加入问题

时间:2015-04-03 16:34:40

标签: sql-server tsql stored-procedures sql-server-2012

我正在使用一个大型查询来提取有关某个人正在处理的各种项目的统计信息。其中一项是拉动一个人本周训练课程的小时数。

COALESCE ((SELECT    Cast(s.nonprodhrs AS DECIMAL(10, 2)) AS '@count'
                                FROM     dbo.BS_TrainingEvent_Segments AS s
                                INNER JOIN dbo.BS_Training_Trainers AS tr
                                ON tr.segmentID = s.teSegmentID
                                WHERE s.segmentDate >= @StartOfWeek AND s.segmentDate <= @EndOfWeek
                                AND tr.trainerEmpID = t.EmpID
                                ), 0) AS '@hoursThisWeek'

我遇到的问题是Training_Trainers表上的内部联接。有多个记录具有相同的segmentID,这会导致错误Subquery returned more than 1 value. This is not permitted when the subquery follows

我是否有另一种方法可以在没有连接的情况下完成此操作或以正确的方式调整它?

1 个答案:

答案 0 :(得分:0)

我不知道你在做什么,但试试这个。看起来你只需要几个小时:

Cast(SUM(s.nonprodhrs) AS DECIMAL(10, 2))....