I have a table in MSSQL 2008 which have data like
row1 ='<FullData>
<Employees>
<Employee ID="001" Name="David" />
<Employee ID="002" Name="Mike" />
<Employee ID="003" Name="Alex" />
<Employee ID="004" Name="Morris" />
</Employees>
<Departments>
<Department ID="01" Name="Food"/>
</Departments>
<Groups>
</Groups>
</FullData>'
row2 = '<FullData>
<Employees>
<Employee ID="005" Name="Fox" />
<Employee ID="006" Name="Perry" />
<Employee ID="007" Name="Duals" />
<Employee ID="008" Name="Harry" />
</Employees>
<Departments>
<Department ID="02" Name="Mobiles"/>
</Departments>
<Groups>
<Group Name="Electronics">
</Groups>
</FullData>'
and similar. How can i fetch data into a single table having this structure:
EmployeeID || EmoloyeeName || DepartmentID || DepartmentName || Groups
001,002,.. || David,Mike,... || 01 || Food ||
005,006,.. || Fox,Perry,.. || 02 || Mobiles || Electronics
Any suggestions??
Update1
currently i can get value from hard coded value not form table data of only one tag in multiple rows like
declare @x xml
set @x = '<FullData>
<Employees>
<Employee ID="001" Name="David" />
<Employee ID="002" Name="Mike" />
<Employee ID="003" Name="Alex" />
<Employee ID="004" Name="Morris" />
</Employees>
<Departments>
<Department ID="01" Name="Food"/>
</Departments>
<Groups>
</Groups>
</FullData>'
select emp.e.value('@ID','varchar(50)') as ID,
emp.e.value('@Name','varchar(50)') as NAME
from @x.nodes('FullData/Employees/Employee') as emp(e)
and Output is
001 David
002 Mike
003 Alex
004 Morris