Я использую Oracle. Я пытаюсь написать что-то вроде этого:
SELECT trans_type,
(SELECT parameter_value FROM transaction_details WHERE id = MAX(t.trans_id))
FROM
(SELECT trans_id, trans_type FROM transactions) t
GROUP BY trans_type
Итак, я пытаюсь использовать результат группировки внутри внутреннего запроса. Но я получаю сообщение об ошибке, что не могу использовать групповую функцию внутри внутреннего запроса:
ORA-00934: group function is not allowed here
Можете ли вы предложить альтернативу, кроме обращения к другому внешнему запросу?
UPDATE
В соответствии с просьбой я публикую более короткую версию реального запроса:
SELECT service_code,
currency,
(SELECT value FROM exchange_rate WHERE date_added = MIN(t.trans_date)) AS exchange_rate,
TRIM(TO_CHAR(SUM(amount), '9999999990.99')) AS amount,
TRIM(TO_CHAR(SUM(tax_amount), '9999999990.99')) AS tax_amount,
TRIM(TO_CHAR(SUM(total_amount), '9999999990.99')) AS total_amount
FROM (SELECT t.amount AS amount,
t.trans_date AS trans_date
t.tax_amount AS tax_amount,
t.total_amount AS total_amount,
td1.string_value AS service_code,
td2.string_value AS currency
FROM transac) t
GROUP BY service_code, currency