Member 13316817 Ответов: 1

Нужно транспонировать это с помощью SQL server SQL


Исходная таблица

para_Name para_value in_id     id
what       click_sq     1      43     
lhs        live         1      44
rhs        live         1      45
what       clieck_sq    1      46
lhs        not_live     1      47
rhs        not_live     1      48
what       Hover_sq     2      49
lhs        live         2      50
rhs        not live     2      51


выходная таблица должна быть

what       lhs         rhs
click_sq   live        live
clieck_sq  not_live    not_live
Hover_sq   live        not_live


Что я уже пробовал:

pivot я пробовал, но он не работает

SELECT what,lhs,rhs
FROM (
  Select Para_Name,Para_Value,id
  from tbl
  where Para_Name IN('what','lhs','rhs')
) Soruce
PIVOT
(
  min (Para_Value)
  FOR Para_Name IN
  (what,lhs,rhs)
) AS pvt

Kornfeld Eliyahu Peter

Покажите нам ваш неработающий стержень...

Member 13316817

Я знаю, что я не очень хороший кодер


Выберите что, lhs, rhs
ОТ
(Выберите Para_Name, Para_Value, id
от скрещ.
где Para_Name IN ('what', 'lhs', 'rhs')) Soruce
СТЕРЖЕНЬ
(
мин (Para_Value)
Для Para_Name в
( что, lhs, rhs )
) Как рядовой

1 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

Эти данные не могут управляться PIVOT. Стержень делает совокупность взаимосвязанных данных, то получается таблица (результат статистической обработки). В вашем случае строки, которые вы хотите агрегировать и повернуть, не связаны никакими данными (все отношения, которые у вас есть, находятся в вашем уме)
По той же причине вы не можете решить ее с конечным числом соединений (так как иногда вы можете обойти необходимость агрегирования в PIVOT).
Чтобы соединить данные в SQL, вы должны иметь какое-то отношение в SQL...