Middle
Erstellen Sie eine Liste teurer Buchungen Frage Wie können Sie eine Liste von Buchungen am Tag von [Telefon] erstellen, die den Mitgliedern (oder Gästen) mehr als 30 $ kosten? Denken Sie daran, dass Gäste unterschiedliche Kosten haben als Mitglieder (die aufgeführten Kosten sind pro halbe Stunde 'Slot'), und der Gastbenutzer ist immer ID 0. Fügen Sie in Ihrer Ausgabe den Namen der Einrichtung, den Namen des Mitglieds als eine einzelne Spalte und die Kosten ein. Sortieren Sie nach absteigendem Kosten, und verwenden Sie keine Unterabfragen.
sobes.tech KI
Antwort von 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— количество половинчасовых интервалов.- Стоимость рассчитывается с учётом типа пользователя.
Такой запрос выводит название объекта, имя пользователя в одной колонке и стоимость, отсортированные по убыванию стоимости.