Мне любопытно, есть ли в Oracle SQL Developer способ расширить строки, содержащиеся в запросе по группам, в отчете или просто в сетке данных.Например, допустим, у меня есть одна Платежная транзакция с суммой платежа.Я сгруппировал эти поля, и у меня есть СУММА пунктов, которая является общей суммой оплаты.Было бы очень хорошо, если бы у меня была функция, которая позволяла бы мне просматривать элементы транзакции, составляющие общую сумму платежа, без необходимости удаления полей Group By и функции Aggregate SUM.
Использование приведенных ниже данных в качестве примера, чтобы показать, что я ищу.Только две таблицы в приведенных ниже данных образца. pymt_transactions и transaction_items .
WITH pymt_transactions AS
(
SELECT 1 AS tran_id FROM dual UNION
SELECT 2 AS tran_id FROM dual UNION
SELECT 3 AS tran_id FROM dual UNION
SELECT 4 AS tran_id FROM dual UNION
SELECT 5 AS tran_id FROM dual
) /* END pymt_transactions CTE */
--SELECT * FROM pymt_transactions;
, transaction_items AS
(
SELECT 1 AS tran_id, 'T-Shirt' AS retail_item, 15 AS amt FROM dual UNION
SELECT 1 AS tran_id, 'Shoes' AS retail_item, 50 AS amt FROM dual UNION
SELECT 1 AS tran_id, 'Pants' AS retail_item, 40 AS amt FROM dual UNION
SELECT 1 AS tran_id, 'Comb' AS retail_item, 3 AS amt FROM dual UNION
SELECT 2 AS tran_id, 'Sweater' AS retail_item, 15 AS amt FROM dual UNION
SELECT 2 AS tran_id, 'Belt' AS retail_item, 12 AS amt FROM dual UNION
SELECT 2 AS tran_id, 'Pants' AS retail_item, 40 AS amt FROM dual UNION
SELECT 2 AS tran_id, 'Watch' AS retail_item, 23 AS amt FROM dual
) /* END transaction_items CTE */
SELECT pt.tran_id, ti.retail_item, ti.amt
FROM pymt_transactions pt
LEFT JOIN transaction_items ti ON ti.tran_id = pt.tran_id
ORDER BY pt.tran_id
;
Выше приведен следующий набор результатов.
Теперь дляГруппировка по версии.Используя те же два CTE в приведенном выше примере:
SELECT pt.tran_id, COUNT(ti.retail_item) AS num_retail_items,
NVL(SUM(ti.amt),0) AS payment_amount
FROM pymt_transactions pt
LEFT JOIN transaction_items ti ON ti.tran_id = pt.tran_id
GROUP BY pt.tran_id
ORDER BY pt.tran_id
;
Вышеуказанный группированный запрос приводит следующие результаты и группы по значению tran_id:
Опять же, без необходимости писать два разных запроса, есть ли способ, которым я могу просто иметь запрос Group By и предоставить возможность просто щелкнуть, чтобы развернуть, чтобы просмотреть retail_items?Я использовал отчеты и другие системы, которые имеют эту функцию.В транзакции 1 и 2 есть четыре розничных товараЯ хочу просмотреть эти позиции, не удаляя предложение Group By и функцию Aggregate SUM, которая выдает сумму в столбце payment_amount.