У меня есть три таблицы - первый содержит вопросы с уникальным идентификаторомТранспонирование/Сводные Ряды столбцам в SQL Server
QID | Question
------------------
1 | Question 1
2 | Question 2
3 | Question 3
4 | Question 4
5 | Question 5
Второй содержит ответы на эти вопросы, уникальный идентификатор из первой таблицы и затем Идентификатор записи, которая связывает ответы вместе
QID | Answer | Parent
-------------------------
1 | Yes | 123
2 | No | 123
3 | No | 123
4 | Yes | 123
5 | Yes | 123
1 | No | 124
2 | Yes | 124
3 | No | 124
4 | No | 124
5 | No | 124
Третий содержит другую информацию о материнской
Parent | Parent Title
----------------------------------------
123 | Questionnaire Sample 1
124 | Questionnaire Sample 2
В идеале я хотел бы создать представление, которое переставляет или поворачивающийся данные в более удобном формате, я имею в виду что-то вдоль линий:
Parent | Question 1 | Question 2 | Question 3 | Question 4 | Question 5
123 | Yes | No | No | Yes | Yes
124 | No | Yes | No | No | No
Я нашел пару действительно хороших потоков здесь, что Я работаю с:
Simple way to transpose columns and rows in Sql?
T-SQL Pivot/Unpivot(Transpose) Column Headers Needed as Data Rows
был еще один:
Transpose rows into columns in SQL Server 2008 R2
, что я вытащил из следующих:
SELECT [First_Set], [Second_Set]
FROM
(
SELECT B.ColumnName, A.Value
, row_number() over(partition by a.Table2ID
order by a.Value) seq
FROM Table_1 AS A
INNER JOIN Table_2 AS B
ON A.Table2ID = B.ID
) AS P
PIVOT
(
min(P.Value)
for P.ColumnName in ([First_Set], [Second_Set])
) AS PIV;
Я модифицируется, что быть:
SELECT [PARENT], [QUESTION], [ANSWER]
FROM
(
SELECT B.PARENT_TITLE, C.QUESTION, A.ANSWER
, row_number() over(partition by a.PARENT
order by a.PARENT) seq
FROM answerTable AS A
INNER JOIN parentTable AS B
ON A.PARENT = B.PARENT
INNER JOIN questionTable AS C
ON A.QID = C.QID
) AS P
PIVOT
(
min(P.RESULT)
for P.PARENT in ([PARENT], [QUESTION], [ANSWER])
) AS PIV;
Который возвращается, но все еще не так мне нужен.
Невозможно создать новые таблицы, так что в идеале я ищу динамические средства здесь, это для отчетности, так что представление было бы самым легким/лучшим на мой взгляд, но я открыт для предложений.
Спасибо.
Вы можете посмотреть на это http://stackoverflow.com/questions/23066846/how-do-i-use-pivot-on-this-data/23067210#23067210 –