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 :

Sous requête SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut Sous requête SQL
    Bonjour,

    Pour commencer voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * ,
    (SELECT count(*) FROM (SELECT count(id) FROM testcaserun tcr2 WHERE tcr.statusDateTime >= tcr2.statusDateTime GROUP BY idTestCase) C ) AS nbCasDeTestPlanned
    FROM testcaserun tcr
    Le problème vient du WHERE, la sous-requête ne reconnaît pas tcr déclarer dans la requête globale.
    Comment pourrais-je passer tcr.statusDateTime dans ma sous-requête ?

    L'objectif est d'afficher mes cas de tests ainsi que nbCasDeTestPlanned qui m'indique combien de cas de tests ont une date inférieure pour chaque cas de test.

    Merci pour vos futures réponses

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    il ne devrait pas y avoir de problème.

    Quel est le message d'erreur exact ?

    Cependant, je pense qu'il y a bien plus simple pour votre problème, postez un jeu d'essai, et le résultat attendu...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut
    Merci pour la réponse,

    Le message d’erreur est : Error Code: 1054. Unknown column 'tcr.statusDateTime' in 'where clause'

    En cherchant un peu je me suis aperçu que c'était parce que tcr est déclaré en "Grand-Parent" de la sous-requête, je m'explique

    ->Requête principale

    --->Sous-requête

    ------>Sous-sous-requête

    tcr qui est déclaré dans la requête principale est accessible dans la sous-requête mais pas dans la "sous-sous-requête".
    Seulement je n'ai pas trouvé la solution juste la cause.

    Je pense qu'il y a plus simple seulement je ne suis pas expert en SQL et je n'ai vu que cette manière, mais si vous avez des idées pour mieux construire ma requête je suis preneur

    Merci

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    cela ne devrait pas poser de probléme pourtant

    Quel est votre SGBDR ?

    En revanche, je constate que la colonne count(id) de la "sous-sous requete" n'a pas de nom (dans la table dérivée C)
    Spécifiez un nom pour cette colonne.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut
    Il s'agit d'une base mySQL et j'utilise MySQL Workbench pour les requêtes.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    En général, on ne peut descendre les colonnes dans les requêtes corrélées que d'un seul niveau, là vous descendez de deux niveaux et MySQL ne sait pas faire.

    En l'état, votre count(*) extérieur retournera forcément 1.
    Détaillez plutôt votre besoin réel avec un petit jeu de données (10 lignes maximum) représentatif.

Discussions similaires

  1. [CS4] Problème de sous-requêtes SQL avec Dreamweaver
    Par WPH2009 dans le forum Dreamweaver
    Réponses: 5
    Dernier message: 01/04/2009, 18h50
  2. UPDATE et sous requêtes SQL 4
    Par Cylie34 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/04/2007, 17h07
  3. Sous-requêtes SQL pour ACCESS
    Par bastoon dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/08/2006, 21h41
  4. problème sous-requête SQL et order by
    Par aguest dans le forum Requêtes
    Réponses: 10
    Dernier message: 26/12/2005, 23h57
  5. Sous-requêtes SQL
    Par mandrake256 dans le forum WinDev
    Réponses: 6
    Dernier message: 21/06/2005, 10h15

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