SQL Server 2005 - TSQL para la consulta XML para obtener departamentos y empleados agrupados
-
29-10-2019 - |
Pregunta
Para una base de datos que contiene 3 tablas:
- Compañía
- Departamento
- Información de Empleados
Me gustaría un XML como a continuación:
<Companies>
<Company>
<CompanyName></CompanyName>
<CompanyId></CompanyId>
<..></..>
<Departments>
<Name></Name>
<..></..>
<Employees>
<Employee>
<FirstName></FirstName>
<LastName></LastName>
.. .. ..
</Employee>
.. .. ..
</Employees>
</Departments>
.. .. ..
</Company>
.. .. ..
</Companies>
Cuando la empresa repite (etiquetas), los departamentos dentro de la compañía están repitiendo (etiquetas) y los empleados dentro de los departamentos repiten (etiquetas) repitiendo, quiero decir que hay más de un número de estos elementos y no los datos.
Relaciones
Company
yDepartment
están relacionados a través deFK
enDepartment
tabla que vincula aCompanyId
enCompany
mesa.Department
yEmployeeInDepartment
están relacionados a través de 'fk' enEmployeeInDepartment
tabla que vincula aDepartmentId
enDepartment
mesa.
Consulta:
Ejecute lo siguiente en la base de datos de pubs y verifique el XML, tendrá más de un trabajo con 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')
No hay solución correcta