Middle
საფასური ბუქინგების სია შექმენით შეკითხვა როგორ შეგიძლიათ შექმნათ სია [ტელეფონი] დღის ბუქინგების, რომლებიც წევრის (ან სტუმრის)თვის 30 დოლარზე მეტია? გახსოვდეთ, რომ სტუმრებს აქვთ განსხვავებული ხარჯები წევრებთან შედარებით (ჩაწერილი ხარჯები არის ნახევარ საათზე 'სლოტი'), და სტუმრის მომხმარებელი ყოველთვის არის ID 0. ჩართეთ თქვენს გამოყვანაში დაწესებულების სახელი, წევრის სახელი ერთ სვეტად ფორმატირებული და ხარჯი. დაალაგეთ კლებადობით ხარჯის მიხედვით და არ გამოიყენოთ ქვესაკვანძო სია.
sobes.tech AI
პასუხი AI-სგან
Для получения списка бронирований на определённый день, где стоимость превышает $30, без использования подзапросов, можно использовать JOIN и фильтрацию в WHERE. Предположим, у нас есть таблицы bookings, members, facilities, и стоимость рассчитывается исходя из длительности и тарифа, который зависит от того, гость это (ID=0) или член.
Пример SQL-запроса:
SELECT f.name AS facility_name,
CONCAT(m.first_name, ' ', m.last_name) AS member_name,
(b.slots * CASE WHEN m.id = 0 THEN f.guest_cost_per_slot ELSE f.member_cost_per_slot END) AS cost
FROM bookings b
JOIN members m ON b.member_id = m.id
JOIN facilities f ON b.facility_id = f.id
WHERE b.booking_date = :phone
AND (b.slots * CASE WHEN m.id = 0 THEN f.guest_cost_per_slot ELSE f.member_cost_per_slot END) > 30
ORDER BY cost DESC;
Здесь:
:phone— параметр с датой бронирования.slots— количество половинчасовых интервалов.- Стоимость рассчитывается с учётом типа пользователя.
Такой запрос выводит название объекта, имя пользователя в одной колонке и стоимость, отсортированные по убыванию стоимости.