SQL Server 2005 - TSQL pour la requête XML pour obtenir des départements et des employés groupés
-
29-10-2019 - |
Question
Pour une base de données contenant 3 tables:
- Compagnie
- département
- Employee-partage
Je voudrais un XML comme ci-dessous:
<Companies>
<Company>
<CompanyName></CompanyName>
<CompanyId></CompanyId>
<..></..>
<Departments>
<Name></Name>
<..></..>
<Employees>
<Employee>
<FirstName></FirstName>
<LastName></LastName>
.. .. ..
</Employee>
.. .. ..
</Employees>
</Departments>
.. .. ..
</Company>
.. .. ..
</Companies>
Lorsque l'entreprise se répète (étiquettes), les départements de la société se répètent (étiquettes) et les employés à l'intérieur des départements se répètent (étiquettes) en répétant, je veux dire qu'il y a plus d'un nombre de ces éléments et non des données.
Rapports
Company
etDepartment
sont liés à traversFK
dansDepartment
table qui relie àCompanyId
dansCompany
table.Department
etEmployeeInDepartment
sont liés par «fk» dansEmployeeInDepartment
table qui relie àDepartmentId
dansDepartment
table.
Requête:
Exécutez la base de données ci-dessous sur les pubs et vérifiez le XML, il aura plus d'un travail avec ID 10
select jobs.job_id 'JobId',
job_desc 'Desc',
(
select emp_id 'EmployeeId',fname 'FirstName',lname 'LastName' from employee where job_id = jobs.job_id for xml path('Emploees'),type
)
from jobs
inner join
employee on jobs.job_id = employee.job_id
for xml path('employees')
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow