Złączenie dwóch tabel o różnej reprezentacji danych w MsSQL

0

Hej,

Mam taki problem, nad którym siedzę od piątku i nie wiem jak go ugryźć. Baza to MsSQL
Mam dwie tabele i każda z niż ma inną filozofie przechowywania danych. Jedna ma dane ułożone w kolumnach

id, param1, param2, ..., param 100
1, test, tralala, ..., 128
2, test2, fiufiu, ..., 256

druga tabela dotyczy tych samych id, ale dane ułożone są w wierszach, a nie kolumnach

id, param, value
1, otherparam1, xxx
1, otherparam2, yyy 
1, otherparam3, zzz 
2, otherparam1, aaa
2, otherparam2, bbb
2, otherparam3, ccc

a chcę w wyniku dostać taki raport

id, param1, param2, ...., param100, otherparam1, otherparam2, otherparam3
1, test, tralala, ..., 128, xxx, yyy, zzz
2, test2, fiufiu, ..., 256, aaa, bbb,ccc

Drugie problem jaki będę mieć to po wyświetleniu całości będę chciał żeby zawęził wyniki tylko do tych, gdzie "otherparam1 = 128". Z góry zakładam, że to pewnie też nie będzie banalne.

Czy to w ogóle jest wykonalne? Czy możecie wytłumaczyć to łopatologicznie? Nie pracuję na co dzień w bazach i zupełnie nie ogarniam tematu.

Dzięki!

0

Coś takiego?

select * from [Table] T join
(select id, otherparam1, otherparam2, otherparam3
from
(
  select id, param, value
  from Table1
) d
pivot
(
  max(value)
  for [param] in (otherparam1, otherparam2, otherparam3)
) piv) T2 on T2.id = T.id;

To może być bardzo lamerskie, bo nie użyłem Angulara i w ogóle ze dwóch lat SQL nie używałem. ;)

0

sprawdziłem przetestowałem i wyświetla u mnie tylko kolumny z zapytania SELECT * FROM [TABLE] nie dokleja kolumn z tego pivota
co może być przyczyną?

0

ok, już działa, myślałem, że ten pivot z automatu wyświetli przy złączeniu tabel co ma wyświetlić, a po prostu trzeba było do pierwszego SELECTa dopisać kolumny, który chcę widzieć, czyli te z T2

bardzo dziękuję za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1