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 :

Requête avec jointure left


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut Requête avec jointure left
    Bonjour,

    J'ai 2 tables :
    1 contenant les CLIENT
    1 contentant les EMAIL

    Dans la table EMAIL j'ai les EMAIL des CLIENT. Tous les clients n'ont pas d'emails.

    Je souhaiterais faire une requête qui me permet d'avoir tous les clients avec un lien sur leur email et avec les clients qui n'ont pas d'email et généré un email auto pour les clients n'ayant pas d'email.
    Le pb c'est que dans ma requête je me retrouve qu'avec les clients qui ont 1 email (présent dans la table EMAIL)

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT NOM, PRENOM
    case when EMAIL IS NULL then PRENOM + '.' +  NOM + '@TEST.Test' else EMAIL end as EMAIL
    FROM CLIENT C
    LEFT OUTER JOIN EMAIL E ON C.IDCLIENT = E.IDCLIENT
    WHERE BLOQUEE = 'N'
    and DOUBLON = 'N'
    Est ce que vous pourriez m'aider ?

  2. #2
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Citation Envoyé par boumbo73 Voir le message
    WHERE BLOQUEE = 'N'
    and DOUBLON = 'N'
    Dans quelle table se trouvent ces champs ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut
    Table EMAIL

  4. #4
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Ah ben voila...
    Les lignees qui sont retournees pour les clients n'ayant pas d'adresse email dans la table email sont filtrees car la "valeur" NULL (retournee pour ces colonnes) n'est pas egale a votre valeur 'N'.

    Revoyez votre clause where pour inclure ces enregistrements.

    Bonne journee

  5. #5
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut
    J'ai besoin d'ajouter ce critère pour les mails existants.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT NOM, PRENOM
    case when EMAIL IS NULL then PRENOM + '.' +  NOM + '@TEST.Test' else EMAIL end as EMAIL
    FROM CLIENT C
    LEFT OUTER JOIN EMAIL E ON C.IDCLIENT = E.IDCLIENT AND BLOQUEE = 'N'
    and DOUBLON = 'N'
    Bref, apprenez le SQL. Mon bouquin, comme mon site web peuvent vous y aider !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Requête avec jointure
    Par Maglight dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/11/2005, 09h57
  2. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  3. Requête avec jointures
    Par Corben dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2004, 12h55
  4. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24
  5. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33

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