Jointure entre 3 tables

Le
Hamet
bonjour

J'ai un problème en transact sql.
J'ai ma table contrat qui a un lien avec ma table employee et ma table
entreprise, j'ai également ma table entreprise qui a un lien avec ma table
employee
Je souhaiterai selectionner les contrats en récupérant le non de l'employee
depuis la table entreprise sauf s'il est pas renseigné ou que
l'idEmployeeU0, Dans ces 2 cas je dois passer par la table contrat pour
faire ma jointure avec la table employee. Je souhaiterai faire cela sans
passer par une UNION comme dans l'exemple ci-dessous.
select

CTR.A_Contrat_Id, emp .EmployeeName
from

A_Contrat CTR
INNER

JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
(cr.a_role like '%S%' )
INNER

JOIN company COM ON cr. company_id=COM.company_id
INNER

JOIN Employee EMP ON ( EMP.Employee_Id = COM.Account_manager_Media ) and
(COM .Account_manager_Media is not null)


Union

select

CTR.A_Contrat_Id, emp .EmployeeName
from

A_Contrat CTR
INNER

JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
(cr.a_role like '%S%' )
INNER

JOIN company COM ON cr. company_id=COM.company_id
INNER

JOIN Employee EMP ON ( EMP.Employee_Id = ctr.employee_id ) and (COM
.Account_manager_Media is null)

Merci pour votre aide.

Hamet
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11852601
Hamet a écrit :
bonjour

J'ai un problème en transact sql.



Il ne s'agit pas de transct SQL, mais de pur SQL !

SELECT CTR.A_Contrat_Id, emp.EmployeeName

FROM A_Contrat CTR
INNER JOIN A_Company_role_contrat cr
ON cr.A_Contrat_Id = CTR.A_Contrat_Id
INNER JOIN company COM
ON cr.company_id = COM.company_id
INNER JOIN Employee EMP
ON EMP.Employee_Id = COALESCE(COM.Account_manager_Media,
ctr.employee_id)

WHERE cr.a_role like '%S%'

Une petite formation SQL... ne serait-elle pas la bienvenue ?
Mon site web, comme mes bouquins peuvent vous y aider !

A +


J'ai ma table contrat qui a un lien avec ma table employee et ma table
entreprise, j'ai également ma table entreprise qui a un lien avec ma table
employee
Je souhaiterai selectionner les contrats en récupérant le non de l'employee
depuis la table entreprise sauf s'il est pas renseigné ou que
l'idEmployeeU0, Dans ces 2 cas je dois passer par la table contrat pour
faire ma jointure avec la table employee. Je souhaiterai faire cela sans
passer par une UNION comme dans l'exemple ci-dessous.
select

CTR.A_Contrat_Id, emp .EmployeeName
from

A_Contrat CTR
INNER

JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
(cr.a_role like '%S%' )
INNER

JOIN company COM ON cr. company_id=COM.company_id
INNER

JOIN Employee EMP ON ( EMP.Employee_Id = COM.Account_manager_Media ) and
(COM .Account_manager_Media is not null)


Union

select

CTR.A_Contrat_Id, emp .EmployeeName
from

A_Contrat CTR
INNER

JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
(cr.a_role like '%S%' )
INNER

JOIN company COM ON cr. company_id=COM.company_id
INNER

JOIN Employee EMP ON ( EMP.Employee_Id = ctr.employee_id ) and (COM
.Account_manager_Media is null)

Merci pour votre aide.

Hamet




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Hamet
Le #11852491
Merci beaucoup, pouvez-vous me donner le lien vers votre site

"Fred BROUARD" a écrit :

Hamet a écrit :
> bonjour
>
> J'ai un problème en transact sql.

Il ne s'agit pas de transct SQL, mais de pur SQL !

SELECT CTR.A_Contrat_Id, emp.EmployeeName

FROM A_Contrat CTR
INNER JOIN A_Company_role_contrat cr
ON cr.A_Contrat_Id = CTR.A_Contrat_Id
INNER JOIN company COM
ON cr.company_id = COM.company_id
INNER JOIN Employee EMP
ON EMP.Employee_Id = COALESCE(COM.Account_manager_Media,
ctr.employee_id)

WHERE cr.a_role like '%S%'

Une petite formation SQL... ne serait-elle pas la bienvenue ?
Mon site web, comme mes bouquins peuvent vous y aider !

A +


> J'ai ma table contrat qui a un lien avec ma table employee et ma table
> entreprise, j'ai également ma table entreprise qui a un lien avec ma table
> employee
> Je souhaiterai selectionner les contrats en récupérant le non de l'employee
> depuis la table entreprise sauf s'il est pas renseigné ou que
> l'idEmployeeU0, Dans ces 2 cas je dois passer par la table contrat pour
> faire ma jointure avec la table employee. Je souhaiterai faire cela sans
> passer par une UNION comme dans l'exemple ci-dessous.
> select
>
> CTR.A_Contrat_Id, emp .EmployeeName
> from
>
> A_Contrat CTR
> INNER
>
> JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
> (cr.a_role like '%S%' )
> INNER
>
> JOIN company COM ON cr. company_id=COM.company_id
> INNER
>
> JOIN Employee EMP ON ( EMP.Employee_Id = COM.Account_manager_Media ) and
> (COM .Account_manager_Media is not null)
>
>
> Union
>
> select
>
> CTR.A_Contrat_Id, emp .EmployeeName
> from
>
> A_Contrat CTR
> INNER
>
> JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
> (cr.a_role like '%S%' )
> INNER
>
> JOIN company COM ON cr. company_id=COM.company_id
> INNER
>
> JOIN Employee EMP ON ( EMP.Employee_Id = ctr.employee_id ) and (COM
> .Account_manager_Media is null)
>
> Merci pour votre aide.
>
> Hamet


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************



Fred BROUARD
Le #11852461
Hamet a écrit :
Merci beaucoup, pouvez-vous me donner le lien vers votre site



C'est dans ma signature.

A +


"Fred BROUARD" a écrit :

Hamet a écrit :
bonjour

J'ai un problème en transact sql.


Il ne s'agit pas de transct SQL, mais de pur SQL !

SELECT CTR.A_Contrat_Id, emp.EmployeeName

FROM A_Contrat CTR
INNER JOIN A_Company_role_contrat cr
ON cr.A_Contrat_Id = CTR.A_Contrat_Id
INNER JOIN company COM
ON cr.company_id = COM.company_id
INNER JOIN Employee EMP
ON EMP.Employee_Id = COALESCE(COM.Account_manager_Media,
ctr.employee_id)

WHERE cr.a_role like '%S%'

Une petite formation SQL... ne serait-elle pas la bienvenue ?
Mon site web, comme mes bouquins peuvent vous y aider !

A +


J'ai ma table contrat qui a un lien avec ma table employee et ma table
entreprise, j'ai également ma table entreprise qui a un lien avec ma table
employee
Je souhaiterai selectionner les contrats en récupérant le non de l'employee
depuis la table entreprise sauf s'il est pas renseigné ou que
l'idEmployeeU0, Dans ces 2 cas je dois passer par la table contrat pour
faire ma jointure avec la table employee. Je souhaiterai faire cela sans
passer par une UNION comme dans l'exemple ci-dessous.
select

CTR.A_Contrat_Id, emp .EmployeeName
from

A_Contrat CTR
INNER

JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
(cr.a_role like '%S%' )
INNER

JOIN company COM ON cr. company_id=COM.company_id
INNER

JOIN Employee EMP ON ( EMP.Employee_Id = COM.Account_manager_Media ) and
(COM .Account_manager_Media is not null)


Union

select

CTR.A_Contrat_Id, emp .EmployeeName
from

A_Contrat CTR
INNER

JOIN A_Company_role_contrat cr ON cr .A_Contrat_Id = CTR.A_Contrat_Id and
(cr.a_role like '%S%' )
INNER

JOIN company COM ON cr. company_id=COM.company_id
INNER

JOIN Employee EMP ON ( EMP.Employee_Id = ctr.employee_id ) and (COM
.Account_manager_Media is null)

Merci pour votre aide.

Hamet



--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************







--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Publicité
Poster une réponse
Anonyme