我有一个很大的查询,我正在使用它来获取关于一个人正在处理的各种项目的统计信息。其中一件事是拉本周一个人将要接受培训班的小时数。TSQL用多个记录加入问题
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 ..”结构的-kind这里,而不是加入 – 2015-04-03 16:41:14
?正如你所说,你的子查询可以返回多个记录,改变你的查询,以便它只返回你的业务规则规定它应该返回的一条记录 – 2015-04-03 17:33:48