Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 04/06/2008, 16h06   #1
Invité régulier
 
Inscription : juin 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 16
Points : 5
Points : 5
Par défaut requete SQL 3 tables

Bonjour,

J' ai 3 tables liées sous SQL Server 2005:
- Invoice(idInvoice, CR...)
- InvoiceByUser(idDisputeByUser, date, idxUser, idxInvoice)
- User(idUser, name, role)

Les données :
Invoice :
1 | 12452
2 | 25487
3 | 65587

InvoiceByUser:
1 | 04/06/2008 | 1 | 1
2 | 04/06/2008 | 2 | 1
3 | 04/06/2008 | 1 | 2
4 | 04/06/2008 | 2 | 3

User:
1 | BBA | CUS
2 | ADE | Sales

Je veux obtenir dans mon affichage final un listing des invoices comme celui-ci :
id | CR |CUS |Sales
1 | 12452 | BBA | ADE
2 | 12452 | BBA | -
3 | 12452 | - | ADE

Mon soucis est que si je fais une jointure je récupère plusieurs fois le même invoice...
Dois-je passer par 2 requêtes ou cela peut-il se faire en une seule ? Faut-il transformer les lignes InvoiceByUser en colonne ? Je suis un peu perdu...

Merci par avance,
@+
basson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2008, 17h13   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 792
Points : 17 792
Citation:
... transformer les lignes InvoiceByUser en colonne ?
cale fait partie de la cosmétiques de données. Ce n'est pas à faire sur un serveur SQL, sauf si vous voulez sciemment en pourrir les performances !

Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 09h58   #3
Invité régulier
 
Inscription : juin 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 16
Points : 5
Points : 5
ok je viens de lire l'article mais ca donnerait quoi en terme de requete SQL si jamais je voulais faire le mauvais eleve ?
basson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web