Я пишу курсовой проект (что-то вроде программы для менеджера отеля), и мне нужна небольшая помощь. У меня есть таблицы Reservations и Rooms, и мне нужно рассчитать сумму оплаты после того, как клиент покинет комнату ((End_date - Start_date) * price_per_day
), но у меня возникают проблемы с получением price_per_day из таблицы Rooms.
Только мой запрос работает, если в таблице Resertvation есть одна запись, если их 2 или более, я получаю сообщение об ошибке «подзапрос вернул более 1 значения», и я не знаю, как это исправить (проблема в этой части запроса SELECT price_per_day FROM Rooms AS ro JOIN Reservations AS re ON ro.room_id = re.room_id
)
Я использую Visual Studio 2019 + SQL Сервер Express LocalDB.
Буду благодарен за любую помощь или подсказку!
UPDATE Reservations
SET Amount_payable = (
DATEDIFF(day, CONVERT(datetime, Start_date, 104), CONVERT(datetime, End_date, 104) * (SELECT price_per_day FROM Rooms AS ro JOIN Reservations AS re ON ro.room_id = re.room_id))
)
WHERE Status = 'Archived'
Таблица бронирования
reservation_id customer_id room_id start_date end_date status Amount_payable
1 3 3 12.04.2020 05.06.2020 Archived 0
2 2 4 11.04.2020 30.05.2020 Active 0
Таблица номера
reservation_id room_id number_of_persons room_type price_per_day
0 1 3 Double 300
0 2 4 Triple 600
0 3 3 Studio 400
2 4 2 Single 444