我有一个SQL查询,它当前显示表HOTEL中预订了$260到$350之间的酒店的所有人。我正在使用ORACLE
SELECT guest.guest_name "GUEST NAME",
Count(guest.guest_no),
guest.guest_no "GUEST NUMBER",
room.r_price "ROOM PRICE"
FROM room,
guest,
booking
WHERE r_price >= 260
AND r_price <= 350
AND guest.guest_no = booking.guest_no
GROUP BY guest.guest_no,
guest.guest_name,
room.room_price
ORDER BY guest.guest_name; 我想我可以只按GUEST.GUEST_NAME分组(所以它将所有的计数放在一个名字下,而不是两个客人的名字)。
编辑:查询的当前结果如下所示:
GUEST NAME COUNT GUEST_NO R_PRICE
Jenny Freeman 2 G003 260
Jenny Freeman 2 G003 295
Jenny Freeman 2 G003 310
Martin Ferguson 3 G006 260
Martin Ferguson 3 G006 295
Martin Ferguson 3 G006 310
Paul Happy 3 G002 260
Paul Happy 3 G002 295
Paul Happy 3 G002 310
Steve Kirkwood 3 G005 260
Steve Kirkwood 3 G005 295
Steve Kirkwood 3 G005 310
Tina Duncan 2 G001 260
Tina Duncan 2 G001 295
Tina Duncan 2 G001 310
Vanessa Horton 1 G007 260
Vanessa Horton 1 G007 295
Vanessa Horton 1 G007 310但我希望是这样的:
GUEST NAME COUNT GUEST_NO R_PRICE
Jenny Freeman 6 G003 260
Martin Ferguson 9 G006 310
Paul Happy 9 G002 310
Steve Kirkwood 9 G005 260
Tina Duncan 6 G001 310
Vanessa Horton 3 G007 260发布于 2012-10-17 20:29:50
嗯,我想你只需要在group by语句中进行更改,rest对我来说是可以的。只是不要在Group By声明中包含房间价格,我认为如果我没有回答您的问题,这会给您带来问题……
GROUP BY GUEST.GUEST_NO,
GUEST.GUEST_NAME和
MAX(R_PRICE) 发布于 2012-10-17 19:24:08
您是否忘记加入ROOM_NO (或其他字段)预订的房间?
我已经从group by中删除了房间价格,查询现在将返回唯一的客人和他们预订的房间数量,价格在给定的范围内,以及每个客人的最高价格。
SELECT
GUEST.GUEST_NAME "GUEST NAME",
GUEST.GUEST_NO "GUEST NUMBER",
COUNT(*) "CNT",
MAX(R.R_PRICE) "ROOM PRICE"
FROM BOOKING B
inner join ROOM R on R.ROOM_NO = B.ROOM_NO
inner join GUEST G on G.GUEST_NO = B.GUEST_NO
WHERE R.R_PRICE>=260 and R.R_PRICE<=350
GROUP BY G.GUEST_NO, G.GUEST_NAME
ORDER BY G.GUEST_NAME;发布于 2012-10-17 19:26:16
您可以尝试执行以下sql查询:
SELECT GUEST.GUEST_NAME "GUEST NAME", COUNT(GUEST.GUEST_NO), GUEST.GUEST_NO "GUEST NUMBER", ROOM.R_PRICE "ROOM PRICE"
FROM ROOM, GUEST,BOOKING
WHERE ROOM.R_PRICE>=260
AND ROOM.R_PRICE<=350
AND GUEST.GUEST_NO = BOOKING.GUEST_NO
GROUP BY GUEST.GUEST_NAME
ORDER BY GUEST.GUEST_NAME;https://stackoverflow.com/questions/12933160
复制相似问题