То, что я пытаюсь сделать, это взять у гостей продолжительность пребывания и умножить ее на стоимость номера, добавить счет-фактуру (за любые покупки, которые они могли совершить на курорте) и добавить счет за обед, чтобы дать им общую сумму. Стоимость проживания по имени гостя.
У меня следующий запрос:
SELECT gr.g_name, (DATEDIFF(d, r.res_checkout_date, r.res_checkin_date) * pp.rate ) + ISNULL(i.inv_amount, 0) + ISNULL(d.total_dining, 0)
FROM guest_reservation gr
LEFT OUTER JOIN invoice i ON gr.confirm_no = i.confirm_no
JOIN reservation r ON gr.confirm_no = r.confirm_no
JOIN price_plan pp ON r.price_plan = pp.price_plan;
LEFT OUTER JOIN (SELECT r_confirmation_no, SUM(price) as total_dining
FROM dining_order do JOIN dining_menu dm ON do.item = dm.item
GROUP BY r_confirmation_no, price) as d ON d.r_confirmation_no = r.confirm_no
Однако, когда я запускаю этот запрос, я получаю следующие сообщения об ошибках:
"Сообщение 156, Уровень 15, Состояние 1, Строка 6
Неверный синтаксис рядом с ключевым словом «ВЛЕВО».
Сообщение 156, уровень 15, состояние 1, строка 8
Неверный синтаксис рядом с ключевым словом «as».
Есть идеи?
Приведенный выше запрос использует следующие таблицы:
Таблица бронирования гостей имеет следующие столбцы с данными:
- confirm_no
- agent_id
- g_name
- g_phone
В таблице бронирования есть следующие столбцы с данными:
- confirm_no
- credit_card_no
- res_checkin_date
- res_checkout_date
- default_villa_type
- price_plan
Таблица счетов содержит следующие столбцы с данными:
- inv_no
- inv_date
- inv_amount
- confirm_no
Таблица ценового плана имеет следующие столбцы с данными:
- price_plan
- Скорость
- default_villa_type
- bed_type