ExplainationPivot повторяющихся имен столбцов и получить все значения для столбцов
Представьте себе, что у меня есть 2 таблицы. FormFields
где хранятся имена столбцов в качестве значений, которые должны быть повернуты, а вторая таблица FilledValues
с заполненными значениями пользователя с FormFieldId
.
ПРОБЛЕМА
Как вы видите (ниже в SAMPLE разделе) в FormFields
таблице У меня есть повторяющиеся имена, но разные идентификаторы. Мне нужно сделать это после объединения таблиц, все значения из таблицы FilledValues
будут приведены к именам столбцов, а не к идентификаторам.
Что мне нужно, вы увидите в OUTPUT ниже.
SAMPLE DATA
FormFields
ID Name GroupId
1 col1 1
2 col2 1
3 col3 1
4 col1 2
5 col2 2
6 col3 2
FilledValues
ID Name FormFieldId GroupID
1 a 2 1
2 b 3 1
3 c 1 1
4 d 4 2
5 e 6 2
6 f 5 2
ВЫВОД ПОКА
col1 col2 col3
c a b -- As you see It returning only values for FormFieldId 1 2 3
-- d, e, f are lost that because It have duplicate col names, but different id's
ХОЧЕТ ВЫХОДА
col1 col2 col3
c a b
e f d
QUERY
SELECT * FROM
(
SELECT FF.Name AS NamePiv,
FV.Name AS Val1
FROM FormFields FF
JOIN FilledValues FV ON FF.Id = FV.FormFieldId
) x
PIVOT
(
MIN(Val1)
FOR NamePiv IN ([col1],[col2],[col3])
) piv
Как я могу производить выход с несколькими строками?
Спасибо за ответ, в некоторых «группах» есть небольшая проблема: все значения FormField пусты (без каких-либо значений), как я могу избежать выбора этих строк? Вот SQL Fiddle, добавленный GroupId 3 со всеми пустыми значениями. Эта строка не должна выбираться: http://sqlfiddle.com/#!3/2961a/1 –
@ StanislovasKalašnikovas Используйте предложение where, чтобы отфильтровать пустые 'FilledValues' - http://sqlfiddle.com/#!3/2961a/3 – Taryn