SELECT
dense_rank() over (order by UnPivotMe.LastName , UnPivotMe.FirstName) as RespondentID
, UnPivotMe.LastName
, UnPivotMe.FirstName
FROM UnPivotMe
SELECT DISTINCT
dense_rank() over (order by CrossApplied.SeqNo, CrossApplied.Question) as QuestionID
, CrossApplied.Question
FROM UnPivotMe
CROSS APPLY (
VALUES
(1, Question1)
, (2, Question2)
, (3, Question3)
, (4, Question4)
, (5, Question5)
) AS CrossApplied(SeqNo, Question)
;
SELECT
dense_rank() over (order by UnPivotMe.LastName , UnPivotMe.FirstName) as RespondentID
, QIDS.QuestionID
, CrossApplied.Answer
FROM UnPivotMe
CROSS APPLY (
VALUES
(Question1, Answer1)
, (Question2, Answer2)
, (Question3, Answer3)
, (Question4, Answer4)
, (Question5, Answer5)
) AS CrossApplied(Question, Answer)
INNER JOIN (
SELECT DISTINCT
dense_rank() over (order by CrossApplied.SeqNo, CrossApplied.Question) as QuestionID
, CrossApplied.Question
FROM UnPivotMe
CROSS APPLY (
VALUES
(1, Question1)
, (2, Question2)
, (3, Question3)
, (4, Question4)
, (5, Question5)
) AS CrossApplied(SeqNo, Question)
) AS QIDS ON CrossApplied.Question = QIDS.Question
order by UnPivotMe.LastName , UnPivotMe.FirstName, QIDS.QuestionID
;
Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.
Comments (0)