J'utilise Oracle. J'essaye de composer quelque chose comme ceci:Fonctions de groupe de requête externe dans la requête interne
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
Ainsi, j'essaye d'employer un résultat de grouper à l'intérieur d'une question intérieure. Mais je reçois l'erreur que je ne peux pas utiliser une fonction de groupe à l'intérieur de la requête interne:
ORA-00934: group function is not allowed here
Pouvez-vous proposer une autre alternative que de recourir à une autre requête externe?
MISE À JOUR
Comme demandé, je posterai une version plus courte de la requête réelle:
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
En fait, la vraie requête est un peu plus compliquée que cela, je donnais juste un exemple. Dans la requête réelle, j'utilise le maximum d'un champ de date - il est un peu incommode de se joindre par dates. – Dario
Hmmm. Cela peut vous aider à publier une copie (désinfectée pour SO) de votre requête d'origine. –