126 votes

la sous-requête dans FROM doit avoir un alias

J'ai cette requête que j'ai écrite dans PostgreSQL qui renvoie une erreur disant :

[Err] ERREUR :
LIGNE 3 : FROM (SELECT DISTINCT (identifiant) AS made_only_recharge

Voici l'ensemble de la requête :

SELECT COUNT (made_only_recharge) AS made_only_recharge
FROM (
    SELECT DISTINCT (identifiant) AS made_only_recharge
    FROM cdr_data
    WHERE CALLEDNUMBER = '0130'
    EXCEPT
    SELECT DISTINCT (identifiant) AS made_only_recharge
    FROM cdr_data
    WHERE CALLEDNUMBER != '0130'
)

J'ai une requête similaire dans Oracle qui fonctionne bien. Le seul changement est que j'ai EXCEPT dans Oracle, je l'ai remplacé par le MINUS mot clé. Je suis nouveau dans le monde de Postgres et je ne sais pas ce qu'il demande. Quelle est la bonne façon de procéder ?

174voto

John Woo Points 132738

Ajouter un ALIAS sur la sous-requête,

SELECT  COUNT(made_only_recharge) AS made_only_recharge
FROM    
    (
        SELECT DISTINCT (identifiant) AS made_only_recharge
        FROM cdr_data
        WHERE CALLEDNUMBER = '0130'
        EXCEPT
        SELECT DISTINCT (identifiant) AS made_only_recharge
        FROM cdr_data
        WHERE CALLEDNUMBER != '0130'
    ) AS derivedTable                           -- <<== HERE

0voto

Frank Cheng Points 79

Dans le cas de tables imbriquées, certains SGBD exigent l'utilisation d'un alias comme MySQL et Oracle, mais d'autres n'ont pas une exigence aussi stricte, mais permettent tout de même de les ajouter pour substituer le résultat de la requête interne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X