私はORACLEを使用したSQLの初心者であり、いくつかの問題が発生しました。部屋の価格に関するデータが入力された4つのテーブル(HOTEL、ROOM、BOOKING、GUEST)を含む基本的なデータベースがあります。
230〜350ドルの価格帯で部屋を予約したゲストの数と名前を見つけることになっている書面によるクエリがあります。また、そのような部屋を予約した回数も表示します。しかし、それは私に正しい出力を与えていないようで、私は理由を理解することができません。クエリは次のとおりです。
SELECT GUEST.GUEST_NAME "GUEST NAME",GUEST.GUEST_NO "GUEST NUMBER",
COUNT(GUEST.GUEST_NO) "NUMBER OF TIMES BOOKED"
FROM ROOM, GUEST, BOOKING
WHERE R_PRICE>=260
AND R_PRICE<=350
AND GUEST.GUEST_NO = BOOKING.GUEST_NO
AND ROOM.HOTEL_NO = BOOKING.HOTEL_NO
GROUP BY GUEST.GUEST_NO, GUEST.GUEST_NAME
ORDER BY "NUMBER OF TIMES BOOKED" ASC;
そして出力:
Tina Duncan G001 2
Jenny Freeman G003 2
Martin Ferguson G006 3
Paul Happy G002 3
Steve Kirkwood G005 3
テーブルのサンプルは次のとおりです。
部屋:
ROOM_NO HOTEL_NO R_TYPE
------- -------- ------ ---------
1 H100 S 220
2 H100 D 230
3 H100 F 310
1 H200 S 260
2 H200 D 170
3 H200 S 250
4 H200 F 180
5 H200 F 295
1 H300 D 200
2 H300 S 420
予約:
DATE_FROM DATE_TO ROOM_NO
--------- --------- -------
15-AUG-12 17-AUG-12 1
30-AUG-12 15-SEP-12 2
01-AUG-12 02-AUG-12 2
10-AUG-12 11-AUG-12 2
01-SEP-12 15-SEP-12 3
31-JUL-12 02-AUG-12 1
11-JUL-12 01-AUG-12 1
12-JUL-12 13-JUL-12 1
14-JUL-12 15-JUL-12 1
17-AUG-12 28-AUG-12 2
31-JUL-12 01-SEP-12 1
31-AUG-12 01-SEP-12 2
31-AUG-12 15-SEP-12 4
01-SEP-12 15-SEP-12 1
ゲスト:
GUEST_NO G_NAME
-------- --------------------
G001 Tina Duncan
G002 Paul Happy
G003 Jenny Freeman
G012 Dianne Kelly
G005 Steve Kirkwood
G006 Martin Ferguson
G007 Vanessa Horton
Goo8 Bianca Begg
出力は次のようになります。
Paul Happy G002 2
Jenny Freeman G003 1
Steve Kirkwood G005 1
Martin Ferguson G006 1
Dianne Kelly G012 1
うまくいけば、私はあなたに十分に与えました、私が少しの助けを得ることができればそれが山積みになることを感謝します。みんなありがとう!