Tengo una tabla como esta para guardar los resultados de un chequeo médico y la fecha del informe enviado y el resultado. En realidad, la fecha de envío se basa en la fecha de clinic_visit. Un cliente puede tener uno o más informes (la fecha puede variar)PostgreSQL: cómo combinar múltiples filas?
---------------------------------------
| 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 |
---------------------------------------
Deseo extraer el siguiente informe de los datos anteriores.
---------------------------------------------------
| client_id | result1 | result2 | resut3 |
---------------------------------------------------
| 1 | A | B | |
| 2 | D | | |
| 3 | A | C | E |
| 4 | D | E | |
| 5 | B | | |
---------------------------------------------------
Estoy trabajando en Postgresql. la función "tabla cruzada" no funcionará aquí porque "date_sent" no es consistente para cada cliente.
¿Alguien puede dar una idea aproximada de cómo se debe consultar?
Su solución funciona, pero creo que el OP desea que los datos se tabulen como en la pregunta, de modo que sea fácil ver dónde están las entradas vacías (el cliente 1 no tiene el resultado E, por ejemplo). – SabreWolfy
@SabreWolfy: actualizado –
Esta respuesta resuelve el problema y debe ser aceptado por el OP. – SabreWolfy