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

Développement SQL Server Discussion :

Problème avec des requète imbriquée dans le from


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 19
    Points
    19
    Par défaut Problème avec des requète imbriquée dans le from
    Bonjour,

    Je ne comprend pas j'ai une premiere requète qui fait un select sur une table qui est en faite une seconde requète SELECT !!! La deuxième requète à bien été nommé, avec comme nom "cb", pour avoir en résultat une table nommée ! mais a l'exécution de l'ensemble de la requête j'ai cette erreur :


    Msg 8158, Level 16, State 1, Line 1
    'cb' a plus de colonnes que spécifié dans la liste des colonnes.

    D'ou vient le problème a votre avis ?
    Merci beaucoup

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous pouvez créer des tables dérivées à votre guise, c'est votre "seconde requête SELECT":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT d, e, f
    FROM (
    		SELECT d, e, f
    		FROM maTable
    	) cb (d, e)
    Dans votre sous requête, vous spécifiez plus de colonnes que la définition de la table dérivée, qui est, dans mon exemple (d,e) alors qu'elle devrait être (d,e,f).

    Vous pouvez donc écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT d, e, f
    FROM (
    		SELECT d, e, f
    		FROM maTable
    	) cb (d, e, f)
    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT d, e, f
    FROM (
    		SELECT d, e, f
    		FROM maTable
    	) cb
    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    ok merci pour la reponse !

    ma requète est plutot de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select a
    from
        ( select a, b, c
          from matable
        ) cb
    where b = 1 AND c = 2
    j'avais des (nolock) sur les tables que j'ai supprimé et donc plus cette erreur ! maitenant j'ai cela :

    Msg 8120, Level 16, State 1, Line 1
    La colonne 'cb.a' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Faites un copier coller de votre requête en cause. Parce que avec ce que vous nous montrez cela ne sert à rien et fait perdre du temps à tous ceux qui veulent vous aider.
    Alors au moins, soyez poli en évitant de faire perdre du temps aux autres !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    La personne qui ma répondu ma grandement aidé à résoudre mon problème !!! je ne fais que répondre avec ces exemples !

    Si je lâche pas comme ca le code c'est surement pour une bonne raison ! SQLpro ! on se détend un peu MERCI

    Cordialement

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous avez du utiliser une fonction d'aggrégation (COUNT, MIN, MAX, AVG, ...) sans préciser la clause GROUP BY.
    Or vous devez la préciser pour tout calcul aggrégé

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

Discussions similaires

  1. [AC-2007] Problème avec des requêtes imbriquées
    Par triaguae dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/02/2011, 14h43
  2. Requètes imbriquée dans le FROM
    Par Stouille33 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/10/2008, 11h05
  3. Problème avec des bords phantomatiques dans un IFRAME
    Par spacexion dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/07/2007, 17h46
  4. Problème avec des requêtes
    Par yoda7666 dans le forum ASP
    Réponses: 13
    Dernier message: 09/03/2006, 18h16
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29

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