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 :

Multi jointure avec jointure externe


Sujet :

MS SQL Server

  1. #1
    Membre éclairé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Par défaut Multi jointure avec jointure externe
    Bonjour,

    je souhaite obtenir une liste de clients non joint par un service pendant une période donnée.

    J'ai une table Problems où se trouve tous les incidents répertoriés par le service SL chez les clients, une table Company qui contient les sociétés clientes et une table KW où se trouve le status permettant de savoir que ce sont des clients non-joints.

    voici ma requête:

    select distinct
    Company.Customer_NB, Company.Company_Name, people.EXT_ID
    from dbo.Company inner join dbo.People on Company.Company_Name = People.Company_name
    inner join Problems on Problems.CompanyID = Company.ID
    union
    (select * from dbo.KW
    where KW.SousCat = 'Suivi Formation CLIENT NON JOINT NF')
    where Company.Customer_NB is not NULL
    and Problems.DateStatut between '01-07-2008' and '25-03-2009'


    voici le message d'erreur qui en ressort:

    Msg*156, Niveau*15, État*1, Ligne*8
    Syntaxe incorrecte vers le mot clé 'where'.


    Je ne comprend pas trop comment fonctionne l'union en fait.

    Merci de voter aide

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    bonjour,
    L'union permet de réunir le résultat issu de 2 requêtes SELECt afin de le présenter comme un ensemble unique de résultat. L'union SQL fonctionne comme l'union entre 2 ensembles.
    La syntaxe générale pour l'utiliser est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      SELECT ... 
      FROM ...
      WHERE ...
      UNION
      SELECT ... 
      FROM ...
      WHERE ...

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Par défaut
    Merci de ton aide précieuse, après avoir fait comme tu me l'indique:

    select distinct
    Company.Customer_NB, Company.Company_Name, people.EXT_ID
    from dbo.Company inner join dbo.People on Company.Company_Name = People.Company_name
    inner join Problems on Problems.CompanyID = Company.ID
    where Company.Customer_NB is not NULL
    and Problems.DateStatut between '01-07-2008' and '25-03-2009'
    union
    select * from dbo.KW
    where KW.SousCat = 'Suivi Formation CLIENT NON JOINT NF'


    il me met ce message:

    Msg*205, Niveau*16, État*1, Ligne*1
    Toutes les requêtes combinées à l'aide d'un opérateur UNION, INTERSECT ou EXCEPT doivent posséder un même nombre d'expressions dans leurs listes cibles.


    le pb, c'est que la table KW n'a pas du tout les mêmes champs que les autres tables, il n'y a qu'un champ qui m'intéresse dedans.

  4. #4
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    si tu faisais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select monChamp1
         , monChamp2
         , monChamp3
    from maTable
     
    UNION
     
    select monChamp1
         , monChamp2
         , NULL
    from maTable2
    ça te permettrait de compenser.. c'est pas très joli, mais ça fonctionne
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  5. #5
    Membre éclairé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Par défaut
    Merci beaucou, c'est nickel

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

Discussions similaires

  1. Requête sql multi-source avec jointure en pur VBA dans excel
    Par guidav dans le forum Général VBA
    Réponses: 1
    Dernier message: 21/09/2013, 20h33
  2. Probleme de requete avec jointure avec vb 2005
    Par napegadie dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/04/2007, 21h04
  3. DELETE multi-tables avec jointures
    Par Xunil dans le forum Requêtes
    Réponses: 13
    Dernier message: 23/10/2006, 16h44
  4. requête avec jointure externe
    Par GMI3 dans le forum Oracle
    Réponses: 8
    Dernier message: 12/04/2006, 10h29
  5. Requête avec jointure externe
    Par claralavraie dans le forum Langage SQL
    Réponses: 8
    Dernier message: 02/02/2006, 08h34

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