我有以下兩個表:加入動態SQL當建築物立柱頭
測驗表:
QuizNo | Status
1 Reviewed
2 Not Reviewed
測驗響應表:
QuizNo | QuestionID | Response
1 11 Yes
2 13 No
2 11 Yes
1 13 No
這是預期的結果(11 13是問號ID):
QuizNo | Status | 11 | 13
1 Reviewed Yes No
2 Not Reviewed Yes No
這是我目前的查詢,這是不正常:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(QuestionID)
from Quiz
INNER JOIN QuizResponse x ON QuizNo = x.QuizNo
group by QuestionID, QuizNo
order by QuestionID
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)') ,1,1,'')
set @query = N'SELECT ' + @cols + N' from
(
select QuestionID
from QuizResponse
) x
pivot
(
max(QuestionID)
for QuestionID in (' + @cols + N')
) p '
exec sp_executesql @query;
你將如何完成/更改查詢,以獲得預期的結果?
TIA!
「*這是我當前的查詢,它不起作用*」,這是什麼意思?,它返回什麼? – Lamak 2014-09-12 15:16:01
你的表格被稱爲「測驗」和「測驗回答」。您的示例代碼沒有這些表格。請修復這個問題。 – 2014-09-12 15:17:55
稍微擴展你以前的問題的版本:http://stackoverflow.com/questions/25810330/values-to-column-headers – Tanner 2014-09-12 15:19:42