我有一个SQL查询,当前显示表HOTEL
中的所有人预订了$ 260到$ 350之间的酒店。我使用的是ORACLE无法正确GROUP BY(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 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
你似乎不在你的sql中预订和房间之间有一个链接。 – mcalex
你想要什么输出?请告诉我们您想要查询的内容!然后我们可以告诉你,如果你的查询应该这样做,是否非常接近你想做的事,或者你是否完全处于错误的轨道上。 –
你究竟在做什么?尝试将guest_no和room_price从选定字段中取出,guest_no取出。 – Andrew