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

MS SQL Server Discussion :

[probleme]left outer join


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [probleme]left outer join
    j'ai deux table "employer" et "realisation sous tache" et je veux afficher tout les employés même s'ils n'ont pas de realisation sous tache.mais cette requette n'affiche que les employés qui ont une realisation sous tache.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select e.nom_employer
    ,e.prenom_employer
    ,min(r.date_debut) as debut
    ,max(r.date_fin) as fin
    from employer as e left outer join [realisation sous tache] as r 
           on e.cin_employer=r.cin_employer
    where 2010=year(r.date_debut) 
    and 4=month(r.date_debut) 
    and day(r.date_debut)=17
    group by e.nom_employer
               ,e.prenom_employer;

    merci d'avence.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Dans ce cas c'est que tous les employés ont réalisé au moins une tâche à partir du 17 avril.

    Vous devriez écrire votre requête comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT		e.nom_employer
    		, e.prenom_employer
    		, min(r.date_debut) AS debut
    		, max(r.date_fin) AS fin
    FROM		employer AS e
    LEFT JOIN	[realisation sous tache] AS r
    			ON e.cin_employer = r.cin_employer
    WHERE		r.date_debut > CAST('20100417' AS datetime)
    GROUP BY	e.nom_employer, e.prenom_employer
    Car l'optimiseur de requêtes se base sur les statistiques de répartition des valeurs des colonnes, dans votre cas la colonne R;date_debut.
    Il ne maintient pas de statistiques sur l'année, le mois, et le jour d'une date

    @++

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Comme ça elsuket plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT		e.nom_employer
    		, e.prenom_employer
    		, min(r.date_debut) AS debut
    		, max(r.date_fin) AS fin
    FROM		employer AS e
    LEFT JOIN	[realisation sous tache] AS r
    			ON e.cin_employer = r.cin_employer
    			AND r.date_debut > CAST('20100417' AS datetime)
    GROUP BY	e.nom_employer, e.prenom_employer

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour Waldar,

    J'avoue avoir eu un doute avant de cliquer sur "Envoyer la réponse", mais je ne sais pas quel est le réel besoin de BALLO1710 ...

    @++

Discussions similaires

  1. [AC-2003] Probleme jointure left outer join
    Par Ardiden31 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/04/2012, 08h47
  2. [AC-2003] Probleme avec LEFT OUTER JOIN
    Par Ardiden31 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/04/2012, 22h00
  3. PROBLEME DE LEFT OUTER JOIN
    Par julien34 dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/12/2008, 13h09
  4. Probleme de NULL avec LEFT OUTER JOIN
    Par jiluc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/01/2006, 14h42
  5. concatenation de chaine dans un left outer join
    Par the_edge dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/11/2004, 16h08

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