[FireBird] Łączenie wierszy w kolumnach.

0

Witam mam 3 tabele
PRACOWNICY:
ID_Pracownika, Nazwisko
1 ; Kowalski

PRACA:
ID_OSOBY, KOD_PRACY
1 ; 123
1 ; 365
1 ; 658

Przy zapytaniu:
SELECT P.NAZWISKO, PR.KOD_PRACY
FROM PRACOWNICY P JOIN PRACA PR
ON P.ID_OSOBY = pr.ID_OSOBY
WHERE P.ID_OSOBY =1

jako wynik otrzymuję

Kowalski ; 123
Kowalski ; 365
Kowalski ; 658

A chciałbym uzyskać jeden wiersz

Kowalski; 123, 365, 658

Chciałbym wiedzieć czy jest polecenie SQL w FireBird, które pozwoli na takie grupowanie.

Z góry dziękuję za podpowiedzi.

0

W FB 2.1 jest nowy agregat : LIST, może on Ci pomoże.

0

Widziałem, tylko że jest to BETA wersja, może wiesz jak to może być z jej stabilnością ??

0

Jakiś czas temu zainstalowałem ją w domu, i intensywnie rozwijam soft na tej wersji. Na razie nie miałem z nią żadnych problemów. Skusiło mnie to co piszą o tym wydaniu, sporo nowych funkcji (m.in. INSERT OR UPDATE, LIST ...) no i zmiany w interfejsie sieciowym - ponoć spora optymalizacja. Zauważyć tej optymalizacji nie zauważyłem - nie robiłem benchmarków. Natomiast nowe funkcje są git. Nie mniej jednak, wczoraj próbowałem postawić ta aplikację na innym kompie i za nic w świecie nie mogłem się połączyć do bazy przez LAN, więc wywaliłem 2.1 i zainstalowałem 2.0 (całe szczęście nie zaimplementowałem wykorzystania nowych bajerów z 2.1).

...

Okazało się że to nie to, BTW jak jest w ustawieniach regionalnych USA a bazę się zrobiło na PLK to jest komunikat że plik fdb "is not a valid database" - to było przyczyną. Tak że dzisiaj wracam na FB2.1. Niestabilności nie zaobserwowałem, ale jak zerkniesz na stronkę FB, to projekt 2.1 jest ciągle poprawiany. Tak czy siak ta wersja ma już pare miesięcy. Pewnie wkrótce wypuszczą nowszą - bardziej stabilną i ostatecznie wersję stable. Więc rozwiązanie na ten moment ryzykowne, ale docelowo OK.

0

[browar]
Wielkie dzięki chętnie się tym pobawię i zobaczę co z tego wyjdzie.

Jeszcze raz wielkie dzięki [browar] :)

0

Hej,
Jednak to jeszcze nie koniec pytań :/ zrobiłem zapytanie:
select ID_OSOBY, LIST(KOD_PRACY, ';')
from PRACA
GROUP BY ID_OSOBY

no i niestety jedyne co dostałem to:

  • IBPP::WrongType ***
    Context: RowImpl::GetValue
    Message: Incompatible types.

BLOB and double

0

Czyżbyś używał FlameRobin : ) Jak na razie ma on taki błąd, że coś mu się nie podoba z BLOB'ami. Temat jest zgłoszony jako bug w projekcie na sourceforge na razie bez odzewu

https://sourceforge.net/tracker/index.php?func=detail&aid=1826278&group_id=124340&atid=699234

Ja to zauważyłem przy pobieraniu BLOB'ów tekstowych. W każdym razie w innych klientach SQL powinno być OK.

0

:) Tak dokładnie to wina FlameRobina :)
ale zauważyłem, że polach tekstowych działa bez problemu. Sprawdzę jeszcze jak to będzie działało na IBExpert+. Jeszcze raz dzięki. [browar]

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