Этот вопрос является значительно улучшенной версией моего предыдущего поста , и надеюсь, что мне здесь помогут.У меня есть таблица ниже / View с образцом или фиктивные данные:
TABLE / VIEW name: CUST_HOTEL_VIEW
+----+----------------+---------------+---------------+--------+---------------+
| ID | Customer | Hotel | Booked_Status | Budget | Booked_Amount |
+----+----------------+---------------+---------------+--------+---------------+
| 1 | John Smith | Beverly Hills | Booked | 2000 | 500 |
| 2 | John Smith | Royal Palms | Cancelled | 3000 | |
| 3 | Marilyn Lawson | Beverly Hills | | 500 | |
| 4 | John Smith | Ritz-Carlton | | 250 | |
| 5 | Marilyn Lawson | Royal Palms | | 700 | |
| 6 | Sarah Elliot | Royal Palms | Cancelled | 1500 | |
| 7 | Sarah Elliot | Ritz-Carlton | Booked | 2000 | 1500 |
| 8 | Sarah Elliot | Royal Palms | Booked | 2500 | 1000 |
+----+----------------+---------------+---------------+--------+---------------+
Нужна помощь, чтобы получить результат ниже с несколькими заголовками, т. Е. Чтобы получить количествоклиента и суммы бюджета на отель (ниже вывод из сводной таблицы Excel):
Я использую Oracle 12c R1 db, и если я получаю запрос с условной агрегацией, которая помогает;как я обнаружил, что это проще и намного проще для понимания.
Я попытался выполнить запрос ниже, чтобы получить количество и зарезервированную сумму:
SELECT COALESCE(CUSTOMER, 'Grand Total') as " " ,
(case when COUNT(booked_status) != 0 then count(booked_status) else null end) as "# Booked",
sum(case when booked_status = 'Booked' THEN booking_amount ELSE null END) as "Booked Amount"
FROM CUST_HOTEL_VIEW
GROUP BY ROLLUP(CUSTOMER)
order by CUSTOMER
и получил результат ниже:
+--------------+----------+---------------+
| | # Booked | Booked Amount |
+--------------+----------+---------------+
| John Smith | 1 | 500 |
| Sarah Elliot | 2 | 2500 |
| Grand Total | 3 | 3000 |
+--------------+----------+---------------+
Но не удалось получить вывод с объединенным заголовком.
Я ценю любую помощь с этим.
Спасибо,
Рича
ОБНОВЛЕНИЕ: Добавление окончательного раздела таблицы выходных данных ниже: ТАБЛИЦА КОНЕЧНЫХ ВЫХОДОВ:
+--------------+---------------+--------+-------------+--------+--------------+--------+-------------+------+
| CUSTOMER | Beverly Hills | Royal Palms | Ritz-Carlton | Grand Total |
+--------------+---------------+--------+-------------+--------+--------------+--------+-------------+------+
| | Count | Sum | Count | Sum | Count | Sum | Count | Sum |
+--------------+---------------+--------+-------------+--------+--------------+--------+-------------+------+
| Sarah Elliot | 0 | (null) | 1 | 2500 | 1 | 2000 | 2 | 4500 |
| John Smith | 1 | 2000 | 0 | (null) | 0 | (null) | 1 | 2000 |
| Grand Total | 1 | 2000 | 1 | 2500 | 1 | 2000 | 3 | 6500 |
+--------------+---------------+--------+-------------+--------+--------------+--------+-------------+------+