Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 23/05/2011, 11h07   #1
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Par défaut problème avec des champs null

bonjour à tous

Voila ma requete :
Code :
1
2
select distinct matriculeSalarie, matriculeTiers ,idContrat_Contrat from JOURNEE,CONTRAT where JOURNEE.matriculeSalarie = CONTRAT.matricule_Salarie and JOURNEE.matriculeTiers is not null And (CONTRAT.finReelle_Contrat >= #02/01/2011# or CONTRAT.finReelle_Contrat is null ) And CONTRAT.debut_Contrat <= #02/28/2011#;
le problème c’est que je récupere quand meme des triplets avec des matriculeTiers null et je vois pas pourquoi puisque je spécifie bien JOURNEE.matriculeTiers is not null

JE NE VOIS PAS DU TOUT MON ERREUR

merci d'avance pour vos réponses
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 11h35   #2
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Bonjour,

Essayez ce code, ou quelque chose comme cela, j'imagine qu'il met des triplets car il trouve le matricule Salarie dans JOURNEE et dans CONTRAT.

Code :
1
2
3
4
 
select distinct JOURNEE.matriculeSalarie, JOURNEE.matriculeTiers ,CONTRAT.idContrat_Contrat
from JOURNEE left join CONTRAT on JOURNEE.matriculeSalarie = CONTRAT.matricule_Salarie 
where JOURNEE.matriculeTiers is not null And (CONTRAT.finReelle_Contrat >= #02/01/2011# or CONTRAT.finReelle_Contrat is null ) And CONTRAT.debut_Contrat <= #02/28/2011#;
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 11h59   #3
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
merci beaucoup pour ta réponse Nitromard mais ta requête ne change pas le résultat par rapport à la mienne

bien essayé quand même et merci
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 12h51   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Rominous41 et Nitromard,

Essaies d'ajouter le test : <>"".
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 13h56   #5
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
avec <>"" je ne récupère plus rien dans ma requête
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h05   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Peux-tu poster ta clause WHERE avec l'ajout de <>"" ?

D'autre part, Nitromard a raison : pour des raisons de performance, il vaut utiliser les jointures (LEFT JOIN), via l'assistant, c'est plus parlant.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h08   #7
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Code :
1
2
3
4
5
 
 
SELECT *
FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
WHERE JOURNEE.matriculeTiers <>"" And (CONTRAT.finReelle_Contrat>=#2/1/2011# Or CONTRAT.finReelle_Contrat Is Null) And CONTRAT.debut_Contrat<=#2/28/2011#;
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h18   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Peux-tu tester cela, en supprimant toutes les autres conditions ?
Code sql :
1
2
3
SELECT *
FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
WHERE JOURNEE.matriculeTiers ="";
==> combien d'enregistrements ?

Code sql :
1
2
3
SELECT *
FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
WHERE JOURNEE.matriculeTiers IS NULL ;
==> combien d'enregistrements ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h35   #9
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Code :
1
2
3
4
 
SELECT *
FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
WHERE JOURNEE.matriculeTiers ="";
donne 1010 enregistrement

et
Code :
1
2
3
4
 
SELECT *
FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
WHERE JOURNEE.matriculeTiers IS NULL ;
ne donne aucun enregistrement
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h44   #10
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Ton test initial "Is Not Null" ne sert à rien, donc, puisqu'il n'y a rien à exclure.

Ta table contient combien d'enregistrements en tout ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h49   #11
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
la table JOURNEE contient 2904 lignes
et la table CONTRAT 68

merci pour ton aide Richard_35
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h53   #12
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
euh ... cette requête fonctionne
Code :
1
2
3
4
 
select distinct JOURNEE.matriculeSalarie, JOURNEE.matriculeTiers ,CONTRAT.idContrat_Contrat
from JOURNEE left join CONTRAT on JOURNEE.matriculeSalarie = CONTRAT.matricule_Salarie 
where JOURNEE.matriculeTiers <>"" And (CONTRAT.finReelle_Contrat >= #02/01/2011# or CONTRAT.finReelle_Contrat is null ) And CONTRAT.debut_Contrat <= #02/28/2011#;
je sais pas se que j'ai fait tout a l'heure
merci beaucoup
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h55   #13
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Je n'ai pas l'impression que ton problème vienne de ce que tu dis dans ton premier post...

Peux-tu énoncer, en français, le test que tu souhaites effectuer ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h03   #14
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Je ne saurais que trop te conseiller de passer par l'assistant, c'est très facile et tout est en français, y compris le format des dates. Access traduit ce qui est nécessaire dans le code SQL (que tu peux récupérer).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 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 15h05.


 
 
 
 
Partenaires

Hébergement Web