【发布时间】:2021-03-24 16:24:27
【问题描述】:
这是一个 SQL 问题。 对不起标题,但我不知道如何写得更好。
我有 3 张桌子:房间、登记和结帐。 表房间有一个列 room_id。 表签入具有以下列:日期、预订 ID、房间 ID。 表结帐具有以下列:日期、预订 ID、房间 ID。
我只想获取睡眠时间最多的房间(其 ID)(如 SUM(checkout.date - checkin.date))。
我只知道如何获得它以及天数。 我怎样才能只得到一列(room_id)?
我的 2 列脚本是这样的:
SELECT r.room_id, SUM(c2.data - c1.data) FROM checkin c1
INNER JOIN checkout c2 ON c1.reservation_id = c2.reservation_id
INNER JOIN room r on r.room_id = c1.room_id
GROUP BY r.room_id
ORDER BY 2 DESC
FETCH FIRST ROW ONLY;
我想我需要一个子查询(至少),但是我在创建一个新列时遇到了麻烦。
【问题讨论】:
-
我删除了不兼容的标签。请仅标记您正在使用的 DBMS。除非它是关于客户端的特定问题(您刚刚在客户端执行的查询的问题不是),否则不要标记客户端。
标签: sql