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 :

Requête SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Par défaut Requête SQL
    Bonjour,

    Je fais actuellement une requête sur ma base de donnée qui est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT source, IQ, count( iterations ) 
    FROM activite
    WHERE retard = "00:00:00"
    AND source IN ( SELECT source FROM correspondance WHERE correspondance.IQ = activite.IQ )
    GROUP BY source, IQ
    ORDER BY source, IQ
    et la même pour les retards <> "00:00:00"

    Cette requête me convient parfaitement si ce n'est un détail.
    J'aimerais que TOUS mes correspondance.IQ ressortent même si il n'y a pas d'entrée équivalente dans activite.IQ ...

    Sauriez-vous m'aider s'il vous plaît ?

    Par avance, MERCI.
    Boueep

  2. #2
    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
    Ca dépend du modèle de votre BDD, mais vous pouvez partir sur une jointure externe et voir ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT ac.source, ac.IQ, count(ac.iterations) 
    FROM activite AS ac RIGHT OUTER JOIN correspondance AS co
        ON co.IQ = ac.IQ AND co.source = ac.source
    WHERE ac.retard = "00:00:00"
    GROUP BY ac.source, ac.IQ
    ORDER BY ac.source, ac.IQ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Par défaut
    Bonjour et merci !

    Votre solution me donne le même résultat qu'avec la requête que j'utilise déjà.
    Soit 55 entrées.

    Hors j'attend un résultat de 84 entrées (autant qu'il y a d'entrée dans correspondance mais avec le count iterations sur "activite")

    J'ai continué à chercher de mon côté mais sans succès !

    Auriez-vous une autre idée de solution ?

    Merci encore.
    Boueep

  4. #4
    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
    Essayez celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT co.source, co.IQ, count(*) nb_interations
    FROM activite AS ac RIGHT OUTER JOIN correspondance AS co
          ON co.IQ = ac.IQ
         AND co.source = ac.source
         AND ac.retard = "00:00:00"
    GROUP BY co.source, co.IQ
    ORDER BY co.source, co.IQ

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Par défaut
    Ca marche plutôt bien !
    En effet les 84 valeurs ressortent.

    Néanmoins, il me met des valeurs à "1" pour les entrées sans itérations.

    Est-il possible d'obtenir "0" ou rien ?

    Il doit me compter l'entrée de la table correspondance

    Mais c'est déjà un grand pas !
    Merci.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Par défaut
    On vient de me donner la solution (entourage proche)
    En lisant votre code, on m'a fait le modifier comme suit (en ca marche !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT co.source, co.IQ, count( iterations ) nb_iterations
    FROM activite AS ac
    RIGHT OUTER JOIN correspondance AS co ON co.IQ = ac.IQ
    AND co.source = ac.source
    AND ac.retard = "00:00:00"
    GROUP BY co.source, co.IQ
    ORDER BY co.source, co.IQ
    Merci pour votre aide précieuse, vraiment ! ! !
    Sujet Résolu

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

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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