Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 18h01   #1
Invité de passage
 
Homme
Inscription : février 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : février 2011
Messages : 9
Points : 2
Points : 2
Par défaut Requête avec plusieurs champs liés

Bonjour à tous,

Je viens exposer ici mon probleme avec lequel je me prends la tete depuis .... bcp trop de jours !

J'ai une table FACTURE qui contient des champs NUMERO, IDCLIENT et IDFACTURATION.
J'ai une table TIERS avec IDTIERS et un TIERSNOM.
Les champs IDCLIENT et IDFACTURATION de la table FACTURE sont liés avec le IDTIERS de la table TIERS.

Je souhaite avec une requete obtenir tous les champs suivant:

NUMERO, TIERSNOM(par rapport à IDCLIENT), TIERSNOM(par rapport à IDFACTURATION).

Voila je coince !

Un ex avec des données

FACTURE contient deux rows
NUMERO IDCLIENT IDFACTURATION
1 2 3
2 1 1

TIERS
IDTIERS TIERSNOM
1 TEST1
2 TEST2
3 TEST3

La requete retournerait

Numero TiersNom(IDCLIENT) TiersNom(IDFACTURATION)
1 TEST2 TEST3
2 TEST1 TEST1

Si quelqu'un a une idée de génie !
Je vous remercie par avance pour votre lecteur et vos réponses.

Merci bcp.
Wiwi31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/02/2012, 18h27   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 688
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 688
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Rien de vraiment complexe :
Code :
1
2
3
4
5
6
7
8
SELECT fac.numero
     , ti1.tiersnom AS nom_client
     , ti2.tiersnom AS nom_facture
  FROM FACTURE AS fac
       LEFT OUTER JOIN TIERS AS ti1
         ON ti1.IDTIERS = fac.IDCLIENT 
       LEFT OUTER JOIN TIERS AS ti2
         ON ti2.IDTIERS = fac.IDFACTURATION
J'ai mis des jointures externes par précaution mais je ne sais pas si elles sont nécessaires.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 06/02/2012, 18h57   #3
Invité de passage
 
Homme
Inscription : février 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : février 2011
Messages : 9
Points : 2
Points : 2
OH LA VACHE !
Bon, j'avais fais du mal aux jointures, aux union ... bref, pourquoi chercher 12h à 14h .... J'ai meme pas osé posté mes essais tellement c'etait compliqué et tordu.


Merci bcp pour ton aide.
Wiwi31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h42.


 
 
 
 
Partenaires

Hébergement Web