Tôi có một bảng như thế này để lưu kết quả kiểm tra y tế và ngày gửi báo cáo và kết quả. Trên thực tế ngày gửi được dựa trên ngày clinic_visit. Khách hàng có thể có một hoặc nhiều báo cáo (ngày có thể thay đổi)PostgreSQL: cách kết hợp nhiều hàng?
---------------------------------------
| 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 |
---------------------------------------
Tôi muốn trích xuất báo cáo sau từ dữ liệu trên.
---------------------------------------------------
| client_id | result1 | result2 | resut3 |
---------------------------------------------------
| 1 | A | B | |
| 2 | D | | |
| 3 | A | C | E |
| 4 | D | E | |
| 5 | B | | |
---------------------------------------------------
Tôi đang làm việc trên Postgresql. chức năng "crosstab" sẽ không hoạt động ở đây vì "date_sent" không nhất quán cho mỗi khách hàng.
Bất kỳ ai có thể đưa ra ý tưởng sơ bộ về cách truy vấn?
Giải pháp của bạn hoạt động nhưng tôi nghĩ OP muốn dữ liệu được lập bảng như trong câu hỏi, để dễ dàng xem nơi trống mục (ví dụ 1 khách hàng không có kết quả E). – SabreWolfy
@SabreWolfy: cập nhật –
Câu trả lời này giải quyết được vấn đề và phải được OP chấp nhận. – SabreWolfy