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 :

UTILISATION DU NON EXIST


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut UTILISATION DU NON EXIST
    Bonjourr
    voilà j'ai deux tables sous la formes suivantes:

    T1= tableau 1:
    NOM sociètè T1| tva |Nom contact|Prénom Contact

    T2 = Tableau 2:
    Nom sociètè | Num tva| Nom conTact T2 | Prénom contact T2

    ce que je recherche c'est à trouvé pour ceux qui ont un numéro de tva equivalent la liste des nom et prenom qui varie :

    j'ai tanté sous access un truc du style mais celui -ci ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    SELECT T1.NOM sociètè , T1.TVA, T1.Nom contact, T2.Nom conTact T2 , T2.Prénom contact  T2 , T1. Prénom contact
    FROM T2, T1
    WHERE (
                                     (T1.TVA)=[T2]![NUM Tva]         
    NOT EXISTS 
              ( SELECT                         *
     
    FROM  T1,T2
    WHERE  (  
                         ( T1.nom contact)=[T2]![Nom contact T2] AND ( T1.Prénomcontact T1)=[T2]![Prénom contact T2]
     
                         )
     
              )
         ;

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Je suppose que tu as du faire une erreur dans des copier coller...
    mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FROM Easy, Kompass
    Ca correspond à quoi ? A t1 et t2 ?
    Ensuite, si c'est T1 et T2, il faut que tu fasses le lien entre ta requête principale et celle qui est dans le NOT EXISTS...

    Par ailleurs, quand testes l'existence, tu n'as pas besoin de mettre des colonnes dans ton SELECT. Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NOT EXISTS ( SELECT 1...)
    ou 
    NOT EXISTS ( SELECT NULL...)
    ou 
    NOT EXISTS ( SELECT *...)
    Ca ne change pas forcément grand chose au niveau comportement du SGBD, mais c'est plus beau...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    erreur dans la retranscirption pour T1 et T2 sinon je ne comprend pas très bien ton il faut que tu fasses le lien entre ta requête principale tu veux dire que je dois passer par une requete intermèdaire?

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    En gros, ton objectif est de décrire que les lignes dans la requête principales ne correpsondent pas aux lignes dans la sous requête NOT EXISTS.

    Il faut donc faire le lien par clef identifiant entre ces deux ensembles.
    Donc déjà, il te faut des alias différents entre les deux requêtes.

    Sur une seule table, ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM T1 a
    WHERE NOT EXISTS (SELECT NULL
                                 FROM T1 b
                                 WHERE b.id = a.id)
    Sur deux tables, c'est le même principe qu'il faut appliquer sur la jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT *
    FROM T1 a JOIN T2 b
      ON a.fk = b.id
    WHERE NOT EXISTS (SELECT NULL
                                 FROM T1 a2 JOIN T2 b2
                                   ON a2.fk = b2.id
                                 WHERE a.id = a2.id
                                   AND  b.id = b2.id)
    Tu vois le principe ?

  5. #5
    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 388
    Points
    18 388
    Par défaut
    J'ai l'impression (mais je ne suis pas sûr car ce n'est pas très clair) qu'il veut plutôt un MINUS / EXCEPT en fait.

Discussions similaires

  1. [2008R2] Utilisation d'une DMV non existant sur une version sql
    Par Boubou2020 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/05/2015, 15h14
  2. Utiliser script bdD existant dans pgadmin
    Par vvaness30 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/03/2007, 11h35
  3. [2.0] Utiliser ou non un dataset
    Par Haks dans le forum Accès aux données
    Réponses: 3
    Dernier message: 08/11/2006, 23h09
  4. Réponses: 6
    Dernier message: 10/02/2006, 13h46
  5. Réponses: 9
    Dernier message: 17/03/2005, 09h20

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