Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2011, 17h25   #1
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Par défaut sous requête NOT IN

Bonjour,

J'interroge une base SQL server via un lien ODBC.

Je veux recouper deux requêtes.
Je fais donc en resumé
Code :
1
2
3
SELECT champA FROM table1 WHERE conditions 
AND champA NOT IN
(SELECT champA FROM table2 WHERE conditions)
Aucun résultat

Je teste un élément précis
dans la requête principale
Code :
1
2
SELECT champA FROM table1 WHERE conditions 
AND champA = '12345'
1 résultat

et dans ma sous requête
Code :
SELECT champA FROM table2 WHERE conditions AND champA = '12345'
0 résultat

J'ai donc bien au moins un élement de différence entre les deux requêtes.

Auriez-vous une idée de ce qui se passe ou de tests supplémentaires que je pourrais réaliser ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 17h33   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

Je dirais que votre sous requete doit vous retourner un/des NULL

que donne ceci :
Code SQL :
1
2
3
4
 
SELECT champA FROM table1 WHERE conditions 
AND champA NOT IN
(SELECT champA FROM table2 WHERE conditions AND champA IS NOT NULL)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h29   #3
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 442
Points : 10 442
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Voir aussi cette discussion, personnellement je préfère la solution NOT EXISTS.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 13h33   #4
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
personnellement je préfère la solution NOT EXISTS
Moi aussi.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 15h47   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Merci c'est bien ça.


Pour NOT EXISTS, la syntaxe n'est pas comprise mais je ne sais pas trop quelle base de données se cache réellement derrière mon ODBC.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h39.


 
 
 
 
Partenaires

Hébergement Web