Sobes.tech
Middle

Bahalı rezervasyonların siyahısını hazırlayın Sual [Telefon] günündə, üzv (və ya qonaq) üçün 30 dollar və ya daha çox olan rezervasyonların siyahısını necə hazırlaya bilərsiniz? Qonaqların xərclərinin üzvlərdən fərqli olduğunu unutmayın (siyahıya alınan xərclər hər yarım saatlıq 'slot' üçün), və qonaq istifadəçisi həmişə ID 0-dır. Nəticənizə müəssisənin adını, tək sütun kimi formatlanmış üzv adını və xərci daxil edin. Xərclərə görə azalan sırayla sıralayın və alt sorğular istifadə etməyin.

sobes.tech Süni İntellekt

AI-dan cavab

Для получения списка бронирований на определённый день, где стоимость превышает $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 — количество половинчасовых интервалов.
  • Стоимость рассчитывается с учётом типа пользователя.

Такой запрос выводит название объекта, имя пользователя в одной колонке и стоимость, отсортированные по убыванию стоимости.