sql查询。。。。。。。。。。。。。

图片说明![图片说明
查询出未住满的room(BED_STATUS 为 N EMPLOYEE_LIVE_ID 不为空)

6个回答

感觉你的提问有些问题,如何表示没住人?

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

Boover
Boover 回复qq_41369735: 你这种提问方式就不对。你给一张截图,然后给一个问题。回答问题的人没有义务自己再把数据库按照你截图中的模样创建一遍吧?想要别人验证,你可以上传一个样例数据库。CSDN上传不了,可以上传到别处,把链接发上来。
大约 2 年之前 回复
qq_41369735
qq_41369735 都不验证一下的吗
大约 2 年之前 回复

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

seulUu
seulUu 111111
大约 2 年之前 回复
qq_41369735
qq_41369735 能验证一下再回答吗
大约 2 年之前 回复

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


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问