我有一個很大的查詢,我正在使用它來獲取關於一個人正在處理的各種項目的統計信息。其中一件事是拉本週一個人將要接受培訓班的小時數。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