![
查询出未住满的room(BED_STATUS 为 N EMPLOYEE_LIVE_ID 不为空)
感觉你的提问有些问题,如何表示没住人?
BED_STATUS 表示是否住人 住人是Y,没住人是N
那么sql是这样的
SELECT b.*
FROM ( SELECT do_room_id
FROM room_bed
WHERE BED_STATUS = 'N'
GROUP BY do_room_id
) a
LEFT OUTER JOIN do_room b ON a.do_room_id = b.do_room_id
BED_STATUS 表示房屋可用状态 可用是Y,不可用是N
EMPLOYEE_LIVE_ID 表示入住员工id, 没住人是null
那么sql是这样的
SELECT b.*
FROM ( SELECT do_room_id
FROM room_bed
WHERE BED_STATUS = 'Y'
AND EMPLOYEE_LIVE_ID IS NULL
GROUP BY do_room_id
) a
LEFT OUTER JOIN do_room b ON a.do_room_id = b.do_room_id
select * from room where BED_STATUS = 'N' and EMPLOYEE_LIVE_ID is not null
select * from do_roow a, room_bed b where where a.do_room_id=b.do_room_id and b.BED_STATUS = 'N' and EMPLOYEE_LIVE_ID is not null
select * from room where BED_STATUS = 'N' and EMPLOYEE_LIVE_ID is not null
查询出来的这个结果应该是没有数据的
SELECT DO_ROOM_ID,
CASE
WHEN MIN(BED_STATUS) = 'N' THEN '没注满'
ELSE '注满'
END FLAG
FROM ROOM_BED
GROUP BY DO_ROOM_ID