我遇到了下面提到的sql查詢的問題。 基本上我試圖列出所有在當前周和前一週每天捕獲數據的系統用戶。子查詢沒有引入EXISTS時,只能在選擇列表中指定一個表達式。 Sql Server 2008
問題與我的查詢下面我得到「只有一個表達式可以在選擇列表中指定子查詢未與EXISTS引入 」。我已經改變了這個查詢的一部分來使用EXISTS,但在子查詢的最後一行仍然得到相同的錯誤。
DECLARE @Dates date;
SET @Dates = '20091012';
DECLARE @FirstDayOfWeek date;
DECLARE @lastDayOfWeek date;
SET @FirstDayOfWeek = dbo.[fn_GetFirstDayOfWeek](@Dates);
SET @lastDayOfWeek = DATEADD(day, 6,@FirstDayOfWeek);
SET NOCOUNT ON
SELECT DISTINCT q.CapturerId, u.Firstname, u.Lastname INTO #Users
from Wop_Questionnaires q JOIN
Frwk_Users u
ON
q.CapturerId = u.Id JOIN
Core_Areas a ON
u.X_Wop_ProvinceId = a.Id
WHERE u.X_Wop_ProvinceId = 5
SELECT (SELECT #Users.Firstname+' '+#Users.Lastname, COUNT(q.CapturerId)
from Wop_Questionnaires q JOIN #Users on q.CapturerId = #Users.CapturerId
where EXISTS(SELECT #Users.CapturerID from #Users WHERE q.CapturerId = #Users.CapturerId)
AND q.CaptureDate >=DATEADD(DAY,DATEDIFF(DAY,'19000101',@FirstDayOfWeek),'19000101')
And q.CaptureDate < DATEADD(DAY,DATEDIFF(DAY,'19000101',@FirstDayOfWeek)+1,'19000101')
GROUP BY q.CapturerId, #Users.Firstname,#Users.Lastname) Sun,
(SELECT #Users.Firstname+' '+#Users.Lastname, COUNT(q.CapturerId)
from Wop_Questionnaires q JOIN #Users on q.CapturerId = #Users.CapturerId
where EXISTS (SELECT #Users.CapturerID from #Users WHERE q.CapturerId = #Users.CapturerId)
AND q.CaptureDate >=DATEADD(DAY,DATEDIFF(DAY,'19000101',DATEADD(DAY,1,@FirstDayOfWeek)),'19000101')
AND q.CaptureDate < DATEADD(DAY,DATEDIFF(DAY,'19000101',DATEADD(DAY,1,@FirstDayOfWeek))+1,'19000101')
GROUP BY q.CapturerId, #Users.Firstname,#Users.Lastname) Mon,
(SELECT #Users.Firstname+' '+#Users.Lastname, COUNT(q.CapturerId)
from Wop_Questionnaires q JOIN #Users on q.CapturerId = #Users.CapturerId
where EXISTS(SELECT #Users.CapturerID from #Users WHERE q.CapturerId = #Users.CapturerId)
AND q.CaptureDate >=DATEADD(DAY,DATEDIFF(DAY,'19000101',DATEADD(DAY,2,@FirstDayOfWeek)),'19000101')
AND q.CaptureDate < DATEADD(DAY,DATEDIFF(DAY,'19000101',DATEADD(DAY,2,@FirstDayOfWeek))+1,'19000101')
GROUP BY q.CapturerId, #Users.Firstname,#Users.Lastname) Tue;
--;--
DROP TABLE #Users;
SET NOCOUNT OFF
感謝 Tebogo
感謝您的建議,但我實際上需要讓用戶每日總計在一行中。我需要計算某個地區的用戶每日所做的每日Sun - Sat的條目,每個用戶都列在一行中。 已經嘗試了幾個角度,但仍然掙扎 謝謝 – Tebogo 2010-02-08 15:51:16
啊,抱歉誤讀您的查詢 – Paolo 2010-02-08 17:06:32