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

Développement SQL Server Discussion :

Une question aux Grands du Sql, sur les jointures externes


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut Une question aux Grands du Sql, sur les jointures externes
    Bonsoir
    A une date donnée, je dois extraire la liste des personnes absentes.
    J'ai 2 tables :

    La 1ère table des personnes (TR):
    - Numero => clef primaire identity
    - Nom => nom de la personne

    La 2ème table (SM)
    - Numero => Clef primaire identity
    - NumeroTR => Clef étrangère = le champ "Numero" de la 1ère table
    - Annee int contient 2007, 2008, 2009
    - Mois int contient le N° du mois (de 1 à 12)
    - 31 champs entiers qui correspondent aux indices du jour du mois. Dans ces champs il y aura le code du pointage saisi.

    Dès le 1er pointage je crée l'enregistrement dans la table SM. Chaque nouveau pointage génère une modification du code du numéro du jour du pointage.

    Ma requête voulue :
    Extraire les personnes qui n'ont pas pointé dans le mois (càd ils n'ont pas encore un enregistrement dans le mois concerné), d'où la requête left join, qui est assez simple :

    SELECT TR.Nom
    FROM TR LEFT OUTER JOIN
    SM ON TR.Numero = SM.NumeroTR
    WHERE (SM.NumeroTR IS NULL) AND (SM.Annee = 2009) AND (SM.Mois = 2)

    Cette requête est censée de fournir toutes les personnes n'ayant pas un enregistrement dans la table SM.

    Je ne vois pas pourquoi je n'ai pas de résultat.
    Merci pour un conseil.

  2. #2
    Membre expérimenté
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Points : 1 391
    Points
    1 391
    Par défaut
    salut,

    penses aux balises [codes] pour tes requêtes.

    bye
    Merci de lire les réponses jusqu'à compréhension!!!
    RTFM

    Vive les bananes
    ______________

  3. #3
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir.

    Effectivement votre requête ne fonctionne pas à cause de votre clause WHERE.

    Ceci devrait mieux fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT TR.NOM 
    FROM TR
       LEFT OUTER JOIN SM 
          ON TR.Numero = SM.NumeroTR
             AND SM.Annee = 2009
             AND SM.MOIS = 2
    WHERE SM.NumeroTR IS NULL
    ++

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Merci, àa marche.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 16/03/2011, 19h52
  2. Problème sur les jointures externes
    Par crashtib dans le forum SQL
    Réponses: 2
    Dernier message: 11/01/2011, 15h57
  3. Respect norme SQL par Hyperfile sur les jointures externes
    Par Arnaud B. dans le forum HyperFileSQL
    Réponses: 24
    Dernier message: 30/11/2010, 15h35
  4. Question sur les jointures
    Par richard038 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2006, 11h46
  5. question de débutant sur les jointures
    Par dreamcocktail dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/03/2006, 15h24

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