Łączenie podobnych wyników

Łączenie podobnych wyników
  • Rejestracja: dni
  • Ostatnio: dni
0

Zapytanie zwraca mi rekordy, przykładowo:

ID nazwa kolor
1 test żółty
2 test2 czerwony
3 test2 żółty
Natomiast wynik jaki chciałbym otrzymać to:
ID nazwa kolor
---------------- ---------------- ----------------
1 test żółty
2 test2 czerwony,żółty

Czyli te rekordy mające różnice w jednej kolumnie scalić- tak jak wyżej- ciężko mi to dobrze opisać. Czy jest funkcja umożliwiająca takie coś?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

group_concat w połączeniu z klauzulą group by.

FI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 88
0

Tak na szybko:

Kopiuj
SELECT ID, nazwa, (SELECT kolor + ',' FROM #test WHERE nazwa = X.nazwa FOR XML PATH ('')) FROM (
select ROW_NUMBER() OVER (PARTITION BY nazwa ORDER BY nazwa) LP, * from #test A ) X WHERE LP = 1
EroSanin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 311
0

Tak, żebyś nie skopiował rozwiązania @firefox:

Kopiuj
 

Select nazwa, group_concat(kolor) from Nazwa_Tabeli group by nazwa;

FI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 88
0

Ah, bo moje rozwiązanie jest w MSSQL a chodzi o MySQL :)

  • Rejestracja: dni
  • Ostatnio: dni
0

A w nieszczęsnej bazie Access? Tam nie ma funkcji group_concat, za informacje o niej dziękuję.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.