IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Every derived table must have its own alias


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut Every derived table must have its own alias
    Salut à tous,

    Je souhaite faire un count sur une requete [strike]imbriquée qui dérive une table[/strike] sous-jacente (édition), comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    -- Compter les derniers résultats en date qui sont Ko pour chaque controle d'une campagne donnée
    select count(*) from (
      select R.controle, R.idRes, R.dateExec, R.etat
      from SyntheseResultat R
          join Controle C
              on R.controle = C.codeControle
          join ListeControles L
              on L.controle = C.codeControle
      where R.etat = 1
          and L.campagne = 'ALM'
      group by R.controle, R.idRes having dateExec = (
          select max(R2.dateExec)
          from SyntheseResultat R2
          where R2.controle = R.controle)
    )
    Sauf que j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -- Chaque table dérivée doit avoir son propre surnom 
    Every deried table must have its own alias
    Alors soit ma requête est complètement fausse, soit je comprends mal mon erreur.

    Soit :
    1. Ma requête est fausse. Pourquoi?
    2. Je comprends mal mon erreur. Ce que je fais avec la table SyntheseResultat R, n'est-ce pas dériver une table? N'a-t-elle pas son propre alias?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Je pense qu'il faut aliaser votre FROM pour le count(*) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT count(*)
    FROM
    (
      SELECT R.controle, R.idRes, R.dateExec, R.etat
      FROM SyntheseResultat R
          JOIN Controle C
              ON R.controle = C.codeControle
          JOIN ListeControles L
              ON L.controle = C.codeControle
      WHERE R.etat = 1
          AND L.campagne = 'ALM'
      GROUP BY R.controle, R.idRes
      HAVING R.dateExec = (
          SELECT max(R2.dateExec)
          FROM SyntheseResultat R2
          WHERE R2.controle = R.controle)
    ) C

  3. #3
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Ah!

    Donc, si j'ai bien compris, ma derived table, est la requête que j'ai imbriqué dans le from?

    Merci beaucoup, Waldar! Et voyez que je n'ai pas abandonné.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Je n'avais pas répondu à l'autre sujet, car contrairement à ce que j'avais cru vous aviez bien pris le taureau par les cornes et c'est bien évidement ce qu'il faut faire !

    Bravo à vous !

  5. #5
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Je me répond à moi même pour les prochains qui passeront par là, en quête de derived tables.

    Donc, si j'ai bien compris, ma derived table, est la requête que j'ai imbriqué dans le from?
    Oui.
    Une table sous-jacente (Derived Table) est une instruction SELECT incluse dans la clause FROM d'une requête.
    source : IAnywhere - Algorithme Table sous-jacente (Derived Table)
    Bravo à vous !
    Il faut dire que si je veux atteindre mes objectifs, je n'ai pas vraiment le choix.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Object must have some value in its @XmlValue field
    Par daydream123 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 09/02/2015, 15h21
  2. Réponses: 4
    Dernier message: 25/04/2011, 14h58
  3. Réponses: 1
    Dernier message: 29/04/2010, 23h53
  4. Réponses: 2
    Dernier message: 02/04/2008, 13h21
  5. field must have value
    Par Mihalis dans le forum Bases de données
    Réponses: 22
    Dernier message: 14/11/2006, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo