나는 예약, 호텔, 손님 및 방과 같이 4 개의 테이블이있는 DB를 가지고 있습니다. 각 호텔의 평균 객실 가격을 산출하는 SQL 문 (Oracle에서)을 얻으려고합니다. 이것은 내가 무엇을 현재 :SQL 문 구조가 잘못 되었습니까?
나는, 호텔의 이름과 'Shangra_la'의 모든 객실의 평균 가격을 선택 것이다 문, '힐튼'와 '쉐라톤'을 어떻게 생각에서SELECT HOTEL.H_NAME "HOTEL NAME", ROUND(AVG (R_PRICE), 1) "AVERAGE ROOM PRICE"
FROM ROOM, HOTEL
WHERE HOTEL.H_NAME = 'Shangra_La'
OR HOTEL.H_NAME = 'Hilton'
OR HOTEL.H_NAME = 'Sheraton'
GROUP BY HOTEL.H_NAME
ORDER BY HOTEL.H_NAME;
주문을하여 호텔의 이름 그러나 내가 이것을 할 때, 나는 틀린 각 호텔에 대해 같은 평균을 얻는다. 다음은
H_NAME AVG. R_PRICE
Hilton 253.5
Shangra_La 253.5
Sheraton 253.5
룸의 테이블 데이터입니다 : 이것은 내 출력
insert into room values
('1','H100','S',220.00);
insert into room values
('2','H100','D',230.00);
insert into room values
('3','H100','F',310.00);
insert into room values
('1','H200','S',260.00);
insert into room values
('2','H200','D',170.00);
insert into room values
('3','H200','S',250.00);
insert into room values
('4','H200','F',180.00);
insert into room values
('5','H200','F',295.00);
insert into room values
('1','H300','D',200.00);
insert into room values
('2','H300','S',420.00);
AND HOTEL :
insert into hotel values
('H100','Sheraton','Melbourne');
insert into hotel values
('H200','Shangra_La','Sydney');
insert into hotel values
('H300','Hilton', 'Perth');
내가 잘못 문을 구성 했습니까? 이 문제를 해결하려면 어떻게해야합니까? 잘만되면 나는 충분한 정보를 제공했다.
내가 HOTEL.HOTEL_NO = ROOM.HOTEL_NO을 사용하여이 방법을 시도해도 여전히 다른 어떤 아이디어와 동일한 결과를 얻을 수 있습니까? –
'GROUP BY'와'ORDER BY'없이'SELECT *'를하면 어떤 결과를 얻을 수 있습니까? –
정확히 무엇을 의미합니까? 그룹 별 주문을 삭제하고 *로 대체하십시오.'룸이 HOTEL.HOTEL_NO = ROOM.HOTEL_NO WHERE HOTEL.H_NAME = 'Shangra_La' 또는 HOTEL.H_NAME = '힐튼' 또는 HOTEL.H_NAME = ON HOTEL 가입하세요 * FROM 를 선택 –