Wiersze zamienione w kolumny

0

Dzień dobry!
Potrzebuję pomocy w kwestii zamiany wierszy na kolumny. Prześledziłem funkcję PIVOT ale chyba nie da się za jej pomocą tego zrobić.

Mianowicie, chciałbym wyświetlić w kolumnach wiersze i robię to tak:
[Szerokość] = case when ... then ... end
Ale problem polega na tym, że mam kilka wyników tego wyszukiwania i chciałbym, aby wszystkie pokazało mi w osobnych kolumnach.
Jak to zrobić? Podzapytaniem? Jeżeli tak to jakby to miało wyglądać?

Dziękuję za pomoc!

0

Nie kumam za bardzo. Możesz zrobić przykład na http://sqlfiddle.com/

0

Kolumna 'Kolumna1' zwraca kilka wartości w wierszach. Ja chciałbym, aby te wartości nie były zwracane w wierszach tylko w kolumnach. Do tej pory korzystałem z czegoś takiego, bo miałem tylko jeden wynik:
[Kolumna] = case when PZA_TypZasobu=1 and SLW_WartoscS = 'FS' then aa.Twr_Kod end <<<<<<<< Comarch XL

Czyli jeżeli kolumna trafi na coś takiego to ma to wyświetlić w sztucznie utworzonej kolumnie 'Kolumna'. Problem w tym, że teraz owa kolumna zwraca więcej niż jedną wartość i nie wiem jak to wyświetlić w większej ilości kolumn.

2

@LogiAgala: masz dwie możliwości:

  1. Lista możliwych wartości atrybutu jest stała -> PIVOT. W zapytaniu robisz wiele kolumn i wiele : case when .. ...
  2. Lista możliwych wartości atrybutu nie jest stała -> (T)SQL -> budujesz dynamiczne zapytanie, a później je wykonujesz
0

@yarel: jak mogę to zrobić za pomocą pierwszej opcji?

4
[Kolumna1FS] = case when PZA_TypZasobu=1 and SLW_WartoscS = 'FS' then aa.Twr_Kod end,
[Kolumna2FS] = case when PZA_TypZasobu=2 and SLW_WartoscS = 'FS' then aa.Twr_Kod end, 
[Kolumna1SA] = case when PZA_TypZasobu=1 and SLW_WartoscS = 'SA' then aa.Twr_Kod end, ...

W zależności po którym atrybucie chcesz zmieniać.
Ale to i tak bez sensu... Zresztą, sam się przekonasz...

0

@Marcin.Miga: robią się schodki z wartości, reszta wypełnia null...

3
LogiAgala napisał(a):

@yarel: jak mogę to zrobić za pomocą pierwszej opcji?

Tak jak Ci @Marcin.Miga napisał.

Szkielet:

select
  id_klienta_albo_cos_co_mowi_ktore_wiersze_maja_byc_grupowane,
  max(case when warunek_do_wstawieniea_do_kol1 else null end)   kol1,
  max(case when warunek_do_wstawieniea_do_kol2 else null end)   kol2,
...
from tabelka
group by   id_klienta_albo_cos_co_mowi_ktore_wiersze_maja_byc_grupowane
0

@yarel: Baaaaaaaardzo Ci dziękuję!

Dziękuję wszystkim za pomoc!

Pytanie czy da się pokazać wszystkie rzeczy, aby to nie było takie statyczne?
Czyli np jak mam 4 rzeczy do pokazania a Tym sposobem pokazuje mi jedną to jak pokazać resztę?

Edit: wiem, że wyżej pisaliście o tym ale może ma ktoś jakiś pomysł jeszcze do tego

2

PIVOT, ew. funckja (procedura) generująca dynamicznego SQL, którego wykonuje.

0

Tu masz jak takiego dynamicznego pivota zbudować: https://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query

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