Pour le code ci-dessous, je reçois le message d'erreur suivant Oracle:Comment puis-je SUM un UNION ALL Oracle sous-requête dans
"ORA-00923: mot clé FROM introuvable où prévu".
SELECT
t1.id,
t1.code,
SUM(t1.productCount)
FROM
(SELECT
id1,
code1,
COUNT(DISTINCT(product)) as productCount1
FROM
table1
GROUP BY
id1,
code1
UNION ALL
SELECT
id2,
code2,
COUNT(DISTINCT(product2)) as productCount2
FROM
table2
GROUP BY
id2,
code2
UNION ALL
SELECT
id3,
code3,
COUNT(DISTINCT(product3)) as productCount3
FROM
table3
GROUP BY
id3,
code3) t1
GROUP BY
t1.id,
t1.code
Un conseil?
non apparentés, mais: 'distinct' est *** *** pas une fonction. 'distinct (product3)' est absolument identique à 'product3 distinct ' –
Une erreur que je peux voir: la table dérivée (l'union tout) n'a pas de colonne' productCount'. Les noms des colonnes d'une union sont (seulement) déterminés par la première requête, ainsi vous avez les colonnes 'id1',' code1' et 'productCount1' disponibles dans la requête externe. Mais cela devrait en fait donner une erreur différente. –
Je pense que votre requête externe a des colonnes 'id' et' code' et votre requête union interne produit des colonnes avec les noms 'name1' et' code1' basés sur la première requête de l'union. Cela pourrait être le problème .. vous pouvez essayer de renommer les premières colonnes de requêtes internes à 'id' et' code' et relancer et voir .. – vmachan