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

Odpowiedz Nowy wątek
2019-01-06 01:30
MMM
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!

Pozostało 580 znaków

2019-01-06 03:22
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. ;)


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2019-01-06 13:29
MMM
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ą?

Pozostało 580 znaków

2019-01-06 13:42
MMM
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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