Truy vấn bên dưới hoạt động, nhưng tốt hơn nên xem xét thay thế trạng thái cột bằng status_code
với mã và có trạng thái status(status_code,description)
{bất bình thường}
Và lập chỉ mục (term_id,statUs_code
).
bằng cách này, chúng ta có thể tự tham gia. Thay vào đó, hãy tạo một chế độ xem như thế này.
SELECT * FROM
(SELECT *,(CASE sample.status
WHEN 'Arrived' THEN 1
WHEN 'Active' THEN 2
WHEN 'Pending Approval' THEN 3
WHEN 'Pending Confirmation' THEN 4
WHEN 'Pending Manual' THEN 5
WHEN 'Denied' THEN 6
WHEN 'Canceled' THEN 7
END) AS status_code FROM SAMPLE
WHERE sample.term_id = 29
) my_view1,
(SELECT BED_ID,MIN(CASE sample.status
WHEN 'Arrived' THEN 1
WHEN 'Active' THEN 2
WHEN 'Pending Approval' THEN 3
WHEN 'Pending Confirmation' THEN 4
WHEN 'Pending Manual' THEN 5
WHEN 'Denied' THEN 6
WHEN 'Canceled' THEN 7
END) AS status_code FROM SAMPLE
WHERE sample.term_id = 29
GROUP BY BED_ID
) my_view2
WHERE my_view1.bed_id = my_view2.bed_id
AND my_view1.status_code = my_view2.status_code