Middle
Qimmatli bronishlar ro'yxatini ishlab chiqaring Savol [Telefon] kuni uchun a'zolar (yoki mehmonlar) uchun 30 dollardan ortiq bo'ladigan bronlarni qanday ishlab chiqasiz? Mehmonlarning xarajatlari a'zolardan farq qilishini unutmang (ro'yxatga olingan xarajatlar har yarim soatlik 'slot' uchun), va mehmon foydalanuvchisi har doim ID 0. Natijangizga muassasaning nomi, bitta ustun sifatida formatlangan a'zo nomi va xarajatni qo'shing. Xarajatga qarab kamayish tartibida saralang va subso'rovlar ishlatmang.
sobes.tech AI
AIdan javob
Для получения списка бронирований на определённый день, где стоимость превышает $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— количество половинчасовых интервалов.- Стоимость рассчитывается с учётом типа пользователя.
Такой запрос выводит название объекта, имя пользователя в одной колонке и стоимость, отсортированные по убыванию стоимости.