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 :

Requête avec variante NOT EXISTS? [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 57
    Points : 42
    Points
    42
    Par défaut Requête avec variante NOT EXISTS?
    Bonjour à tous,

    Je bloque à la création d'une requête. Voilà ce que j'ai dans une table :

    Champ 1 Champ 2 Champ 3 Champ 4 .... Champ 10
    A 1 2 1
    A 1 1
    A
    A 1 2 1 1

    Je voudrais récupérer les enregistrements qui ont AU MOINS une valeur dans uns des champs 2 à 10 mais sans les enregistrements qui ont tous les champs remplis ET sans les enregistrements qui n'ont aucun champ remplis. Donc dans l'exemple je voudrais récupérer les 2 premiers enregistrements.

    Je dois exécuter la requête par DAO et là je buche vraiment dessus!

    Si quelqu'un a une piste je suis preneur.

    Merci d'avance!

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    C'est de la logique pure, il n'y a pas besoin de not exists. Je te le fais pour 3...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from matable where not (isnull(c2) and isnull(c3) and isnull(c4)) 
    and (not isnull(c2) or not isnull(c3) or not isnull(c4))

  3. #3
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    Merci pour ta réponse tu m'a bien aidé dans ma recherche!

    Il manquait juste dans ton SQL le critère "je ne veux pas les enregistrements ou tous les champs sont remplis".

    Pour info le SQL final est (avec 2 champs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strsql = "select * from Tbl_donnees where not (champ1 is null and champ2 is null) and (champ1 is not null or champ2 is not null) and not (champ1 is not null and champ2 is not null)"

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    En fait c'est plus grave que ça, mes 2 tests sont identiques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strsql = "select * from Tbl_donnees where not (champ1 is null and champ2 is null) and not (champ1 is not null and champ2 is not null)"
    Il y a 2 cas à éliminer donc 2 groupes "not"

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    J'ai pu me débrouiller avec la syntaxe de ta réponse!

    Des fois un avis extérieur rend très rapidement service! Hier soir ça voulait pas y aller.

    merci!

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

Discussions similaires

  1. Problème requête insert where not exists
    Par cisco.nat dans le forum Langage SQL
    Réponses: 30
    Dernier message: 01/07/2013, 13h14
  2. Requête avec vérification d'existence dans une autre table
    Par TigerCX dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/04/2011, 19h06
  3. Requête avec l'opérateur EXISTS
    Par Aiglon13 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/01/2011, 02h11
  4. Requete INSERT INTO avec IF NOT EXISTS: Est-ce possible ?
    Par yann123456 dans le forum Requêtes
    Réponses: 14
    Dernier message: 15/06/2009, 15h37
  5. Problème avec le not exists
    Par julrock dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/11/2007, 16h08

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