Я создал таблицу:
Create table rooms
(
roomNo int not null,
hotelNo int not null,
hotelName varchar (40) not null,
roomType varchar (40)
default 'standard' check (roomType in ('single', 'double', 'master',
'standard', 'president')),
price decimal (8,2) check (price>=0 and price<=99999),
guestNo int null
)
roomNo
и hotelNo
- первичный ключ, а guestNo
- внешний ключ.
Таблица заполняется значениями:
(101, 123456, 'Home','standard',300, 54321)
(101, 654321, 'Ibis','standard',300, Null)
(101, 987654, 'Hiton','president',15000, null)
(222, 987654, 'Hiton','standard',300, 12345)
(321, 987654, 'Hiton','master',1000, 11111)
(333, 123456, 'Home','single',100, null)
(333, 987654, 'Hiton','standard',300, 12345)
(567, 654321, 'Ibis','standard',300, null)
(888, 654321, 'Ibis','single' ,100, null)
(999, 654321, 'Ibis','double' ,200, null)
Как я могу ответить на вопрос «Выберите общую цену номеров, забронированных одним и тем же человеком?»?
Я хочу получить сумму, равную 600, но на основе этого запроса яполучите 1900:
select sum(price)
from rooms r inner join guests g
on r.guestNo = g.guestNo and g.guestName = g.guestName