我正在使用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
實際上,真正的查詢比這更復雜一些,我只是舉了個例子。在真正的查詢中,我使用的是日期字段的最大值 - 按日期加入會有點不方便。 – Dario 2010-04-04 13:40:35
嗯。它可能會幫助您發佈原始查詢的副本(清理完成)。 – 2010-04-04 13:43:49