Bonjour,
voici mon problème je dois retourner une liste de contacts pour ça je dois pioché dans 4 tables:
- Exploitant (Entreprise)
- Fournisseur (Entreprise)
- Banque (Entreprise)
- Utilisateur (Personne) (c'est celle qui contient mes personnes physiques liée à mes 3 autres tables)
Je dois retourner indifféremment toutes les entreprises en plus de toutes les personnes qui sont liés à ces entreprises.
Les données que je dois retourner sont la raison sociale de l'entreprise dans le cas où le contact est une entreprise, le nombre de contact associé (dans la table utilisateur) et les coordonnées du premier contact associé.
J'ai donc crée une vue qui fait un union all du tout mais je coince sur la requête pour les entreprises comme je veux retourner à la fois le nombre de contact associé et le premier contact de l'entreprise ça coince, voici ce que j'ai fait:
N'y a t-il pas un moyen plus élégant pour que mon (Select count(*)) dans ma liste de colonne surtout que je le fais 3 fois dans ma vue (une fois pour chaque type d'entreprise) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select *, (Select count(*) from dbo.UTILISATEUR where UTILISATEUR.ID_PARENT=BANQUE.ID_Banque and UTILISATEUR.CODE='BANQUE') as NbContact from dbo.BANQUE left outer join UTILISATEUR on UTILISATEUR.ID = ( select top(1) ID from UTILISATEUR where UTILISATEUR.ID_PARENT = BANQUE.ID_Banque and UTILISATEUR.CODE='BANQUE' order by UTILISATEUR.ID )
Merci pour vos réponses.
Partager