Mam taką tabelę, aby zapisać wyniki kontroli lekarskiej i datę wysłania raportu i wynik. W rzeczywistości data wysłana jest oparta na dacie przychodni. Klient może mieć jeden lub więcej raportów (data może się różnić)PostgreSQL: jak połączyć wiele wierszy?
---------------------------------------
| client_id | date_sent | result |
---------------------------------------
| 1 | 2001 | A |
| 1 | 2002 | B |
| 2 | 2002 | D |
| 3 | 2001 | A |
| 3 | 2003 | C |
| 3 | 2005 | E |
| 4 | 2002 | D |
| 4 | 2004 | E |
| 5 | 2004 | B |
---------------------------------------
Chcę wyodrębnić następujący raport z powyższych danych.
---------------------------------------------------
| client_id | result1 | result2 | resut3 |
---------------------------------------------------
| 1 | A | B | |
| 2 | D | | |
| 3 | A | C | E |
| 4 | D | E | |
| 5 | B | | |
---------------------------------------------------
Pracuję na Postgresql. funkcja "tabeli krzyżowej" nie będzie tutaj działać, ponieważ "date_sent" nie jest spójne dla każdego klienta.
Czy ktoś może podać dokładny pomysł, w jaki sposób należy go sprawdzić?
Twoje rozwiązanie działa, ale uważam, że OP chce danych w formie tabelowej, jak w pytaniu, tak, że łatwo jest zobacz, gdzie są puste wpisy (klient 1 nie ma na przykład wyniku E). – SabreWolfy
@SabreWolfy: zaktualizowano –
Ta odpowiedź rozwiązuje problem i powinna być zaakceptowana przez PO. – SabreWolfy