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 :

requete sql : un vrai "et" booléen


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 4
    Points
    4
    Par défaut requete sql : un vrai "et" booléen
    Bonjour,

    J'ai deux enregistrements dans la table dbo.alertebrute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id_alerte | nom_alerte        | valeur | id_service
    1            | snmp_disk_size  | 60      | 8
    2            | snmpdisk_size    | 20      | 7
    Je cherche à faire une requete qui me renvoie :

    - les deux resultats si je choisi comme id service 7 et 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id_alerte | nom_alerte        | valeur | id_service
    1            | snmp_disk_size  | 60      | 8
    2            | snmpdisk_size    | 20      | 7
    -rien si je choisi comme id_service 7 et 13 par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    id_alerte | nom_alerte        | valeur | id_service
    ......en une seule requête
    Ca correspond au & booléen, mais je n'arrive pas à faire la requete

    J'ai essayé avec union exists in or and, et à chaque fois,en retour il y a un resultat dans le deuxième cas alors que je voudrais qu'il ne renvoie rien.

    Mon sgbd ne prends pas en compte la norme sql3
    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut Re: requete sql : un vrai "et" booléen
    Citation Envoyé par claquetteman
    Mon sgbd ne prends pas en compte la norme sql3
    Merci d'avance pour vos réponses.
    ce serait surement plus simple si tu disais lequel c'est

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Si tu as plusieurs lignes avec id_service = 7 et plusieurs avec id_service = 8, quelles lignes tu veux ramener ?
    Toutes, une par service ?
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Donc j'utilise sql server.

    Admettons que je n'ai que ces deux enregistrements dans la base.
    De toute façon je me debrouille pour faire sortir ces deux tuples.

    Je cherche à faire un & logique

    Si je fais ma requete sur 7 et 8 alors il me renvoie les deux enregistrements
    Si je fais ma requete sur 7 et autre chose ça peut etre 13, 15, 546 alors il me renvoie rien.

    Je cherche donc à faire une requete qui renvoie tous les enregistrements s'ils sont tous valables sinon qu'elle n'en retourne aucun.

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Comma ça, ça irait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select * from (
    select a.id_alerte,a.nom_alerte,a.valeur,a.id_service  ,
    b.id_alerte,b.nom_alerte,b.valeur,b.id_service  id_service_b
    from alertebrute a,alertebrute b
    where a.id_service = 7 
    and b.id_service = 8)
    where id_service_b = 8

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je teste chez moi ce soir, en tout cas merci d'avance !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Que penses-tu de ceci (testé sur Oracle) ?

    select nom_alerte from alertebrute
    where exists (select id_alerte from alertebrute where id_service = 7) and
    exists (select id_alerte from alertebrute where id_service = 8) and
    id_service in (7,8) ;

    Est-ce que cela résoud ton problème ?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci a tous les deux!

    Je viens de lancer les deux requetes, la tienne ora n'a pas aboutie, je regarderai quand j'aurai plus de temps. Visiblement la derniere clause where pose un probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Serveur : Msg 156, Niveau 15, État 1, Ligne 7
    Syntaxe incorrecte vers le mot clé 'where'.
    Par contre la tienne christie renvoie tout à fait le resultat attendu.
    Ta requete renvoie bien les deux tuples. Et si je change un des id 7 ou 8 en 13 qui n'existe pas alors en retour il n'y a rien, c'est super merci.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    De rien
    Christie

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

Discussions similaires

  1. [MySQL] Problème de quote dans une requete sql
    Par berew dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 05/04/2012, 21h33
  2. [Tableaux] quotes dans requete sql
    Par taki_38 dans le forum Langage
    Réponses: 5
    Dernier message: 11/07/2006, 15h09

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