Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[SQL] Wyświetlanie danych z wielu komórek w jednej

Alkaidek 08 Wrz 2011 13:20 7982 5
  • #1 08 Wrz 2011 13:20
    Alkaidek
    Poziom 10  

    Napisałam zapytanie, które wyciaga takie informacje jak imie, nazwisko i tytuł z tabel: Autor (imie, nazwisko) i Publikacje(tytul), które sa połączone relacja wiele do wielu. Czy da radę jakoś wyświetlić w jednej kolumnie autorów w zapytaniu sql jeśli publikacja posiada wiecej autorów niz jeden? Czy raczej takie wyświetlenie jest mozliwe jedynie z poziomu aplikacji?

    Kod: sql
    Zaloguj się, aby zobaczyć kod

    0 5
  • #2 08 Wrz 2011 14:02
    roofy_1
    Poziom 16  

    tzn?
    Nie wiem czy to o to chodzi ale generalnie całe zapytanie inaczej bym skonstruował
    Skoro sprawdzasz Autorów i ich Publikacje to wyjdź w zapytaniu od publikacji i poprzez tabelę mieszającą połącz z autorami i następ nie pogrupuj wynik dla publikacji i ewentualnie po tym polu też posortuj.
    Poza tym jest w sql-u i ja czasem korzystam z takiej funkcji RANK() i dzięki niej możesz dla każdej publikacji ponumerować kolejnych autorów.
    Więcej tutaj:
    http://msdn.microsoft.com/en-us/library/ms176102.aspx

    Pozdr.

    0
  • #3 08 Wrz 2011 14:19
    MiL999
    Poziom 26  

    Pewnie chodzi ci o to żeby wyświetlać autorów w jednym wierszu w jednej kolumnie?
    Jeżeli tak to musisz zrobić podzapytanie albo funkcję która sklei ci autorów na daną publikację do jednego stringa.

    0
  • #4 08 Wrz 2011 14:19
    McMonster
    Poziom 32  

    Robisz złączenia danych publikacji i autorów, potem do tworzonego pola autorów wybierasz zrobione wcześniej złączenie podzielone (dzielenie algebry relacji, nie matematyczne, szczerze to nie wiem, czy to działanie jest obecne w języku, w którym piszesz :)) przez daną publikację i otrzymujesz krotki wszystkich autorów tej publikacji, które łączysz sobie w jeden łańcuch znaków.

    Takie coś chyba powinno zadziałać.

    0
  • #6 16 Wrz 2011 08:45
    Alkaidek
    Poziom 10  

    Dzięki @roofy_1, Twoja podpowiedź pomogła mi osiągnąć mój cel.

    0