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

Requêtes et SQL. Discussion :

Pb avec Select Imbriqué


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut Pb avec Select Imbriqué
    Bonjour,

    Voici mon problème, j'essaie de compter combier de ligne sont en Statut "OK" et combien en "KO" dans la même requête :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    SELECT 
     
     
    Taux_conformité_entrant_VD.Mois, 
     
     
     
    (SELECT
     
    Count(T3.OK_KO)
     
    FROM Taux_conformité_entrant_VD AS T3
     
    WHERE T3.OK_KO="1 - OK" 
    AND Taux_conformité_entrant_VD.Mois = T3.Mois
     
     
    ) AS OK,
     
     
    (SELECT
     
    Count(T4.OK_KO)
     
    FROM Taux_conformité_entrant_VD AS T4
     
    WHERE T4.OK_KO="2 - KO"
    AND Taux_conformité_entrant_VD.Mois = T.Mois
     
     
    ) AS KO
     
     
     
     
    FROM Taux_conformité_entrant_VD
     
     
    GROUP BY Taux_conformité_entrant_VD.Mois

    Cette requête ne fonctionne pas, je me prends la tête dessus, il y peut être un truc con auquel je passe à coté sans voir.
    Mon message d'erreur porte sur le Group By, apparemment il manque un truc.

    Merci d'avance pour vos conseils.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut,

    ne serait-il pas plus judicieux de faire 3 requêtes?
    2 pour les COUNT OK et KO en fonction du mois (Group By)
    1 qui lie les résultats des 2 précédentes

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Effectivement, c'est UNE solution, mais je ne souhaite pas faire 3 requetes, car j'ai 6 requetes du meme type à effectuer donc cela démultiplierait tout.

    D'autant plus que j'ai déjà fait ce genre de requete, mais là je bloque, il doit y avoir un probleme que je ne vois pas.

    Merci tout de même pour ta réponse.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Il semble y avoir une erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND Taux_conformité_entrant_VD.Mois = T.Mois
    T n'est pas un alias de nom de table.

    A+
    [Edit]
    Je me demande si cette requête ne donnerait pas le même résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
    Taux_conformité_entrant_VD.Mois, 
    Sum(IIF(Taux_conformité_entrant_VD.OK_KO="1 - OK",1 ,0)) AS [OK],
    Sum(IIF(Taux_conformité_entrant_VD.OK_KO="2 - KO",1 ,0)) AS [KO]
    FROM Taux_conformité_entrant_VD
    GROUP BY Taux_conformité_entrant_VD.Mois

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Merci bcp, c'est tout à fait ça, ta requete fonctionne très bien, je ne savait que le IIF était utilisable de cette manière.

    Merci encore.

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

Discussions similaires

  1. Optimisation requete avec select Imbriqué
    Par sintesi974 dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/08/2010, 17h18
  2. Problème requete avec SELECT imbriqué
    Par Isiker dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/07/2010, 16h44
  3. [Delphi6,Access] Requête update avec select imbriqué
    Par magicstar dans le forum Débuter
    Réponses: 3
    Dernier message: 30/03/2009, 19h40
  4. requete update avec select imbriqué
    Par mikees dans le forum SQL
    Réponses: 3
    Dernier message: 09/02/2009, 17h42
  5. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05

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