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 :

problème avec des champs null [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut problème avec des champs null
    bonjour à tous

    Voila ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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#;
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    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

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    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 !

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    avec <>"" je ne récupère plus rien dans ma requête

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    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 !

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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#;

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Peux-tu tester cela, en supprimant toutes les autres conditions ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
    WHERE JOURNEE.matriculeTiers ="";
    ==> combien d'enregistrements ?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM JOURNEE LEFT JOIN CONTRAT ON JOURNEE.matriculeSalarie=CONTRAT.matricule_Salarie
    WHERE JOURNEE.matriculeTiers ="";
    donne 1010 enregistrement

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  10. #10
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    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 !

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    la table JOURNEE contient 2904 lignes
    et la table CONTRAT 68

    merci pour ton aide Richard_35

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Points : 62
    Points
    62
    Par défaut
    euh ... cette requête fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  13. #13
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    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 !

  14. #14
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    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 !

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

Discussions similaires

  1. pb de requete avec des champs null
    Par karenv5 dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/05/2010, 10h26
  2. Soustraction avec des champs Null
    Par dam28800 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 15/04/2009, 16h57
  3. Problème avec des champs de formulaire
    Par ksper92 dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 11h49
  4. problème avec WHERE champ = NULL
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/03/2007, 22h28
  5. Requete avec des champs null
    Par passie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/06/2006, 15h11

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