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

SQL Oracle Discussion :

[SQL] Aide sur une requête


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [SQL] Aide sur une requête
    Bonjour,

    Je cherche à faire une requête qui me renvoie une ligne seulement si pour une valeur1 , chaque valeur 2 est égal à OK

    ex :

    valeur1 valeur2
    val1 ok
    val1 ok

    renvoie
    val1 ok

    et si

    valeur1 valeur2
    val1 ok
    val1 ko

    renvoie
    rien

    merci

  2. #2
    Membre averti Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Points : 442
    Points
    442
    Par défaut
    Bonjour,

    Il faudrait un peu plus de détails sur la structure et la volumétrie de la table, mais sur le principe, si la table n'est pas trop volumineuse, on peut faire quelque chose d'assez simple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select distinct valeur1, valeur2
    From ma_table t1
    Where Not Exists (Select null
                      From ma_table t2
                      Where t2.valeur1 = t1.valeur1
                        and t2.valeur2 != 'ok')

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Qu'est ce que ça donne ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select val1, val2, sum (case when val2='OK' then 1 end) as cnt_ok, count(*) as cnt_tot
    from t
    group by val1, val2
    having sum (case when val2='OK' then 1 end) = count(*)

  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 394
    Points
    18 394
    Par défaut
    On peut faire plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      select valeur1, 'ok'
        from t
    group by valeur1
      having min(valeur2) = 'ok'
    order by valeur1 asc;

Discussions similaires

  1. [SQL] Aide sur une requête.
    Par baniban dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/11/2007, 18h52
  2. aide sur une requête sql
    Par sanach dans le forum Développement
    Réponses: 9
    Dernier message: 17/10/2007, 21h42
  3. [SQL] Besoin d'aide sur une requête
    Par moonboot dans le forum Oracle
    Réponses: 1
    Dernier message: 01/08/2006, 16h56
  4. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 17h26
  5. Réponses: 1
    Dernier message: 03/08/2005, 12h41

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