| Author |
Topic |
|
AskSQLTeam
Ask SQLTeam Question
0 Posts |
Posted - 2005-11-30 : 08:10:35
|
| Senthil writes "You can copy & paste all the following lines till the end into your query analyser for easy understanding.Please help me, how I can get this output in SQl Server 2000. Also, Whats the problem in my query? I appriciate your immediate responces. --Here is my table structure & data look likeSET NOCOUNT ONDECLARE @Dept TABLE (DeptID INT IDENTITY(1,1), DeptName VARCHAR(50))DECLARE @Emp TABLE (Empid INT IDENTITY(1,1), EmpName VARCHAR(60))DECLARE @EmpDept TABLE(EmpID INT , DeptID INT)DECLARE @EmpSal TABLE (EmpID INT, MonthID SMALLINT, Salary MONEY)INSERT INTO @Dept SELECT 'Engineering'INSERT INTO @Dept SELECT 'Workshop'INSERT INTO @Dept SELECT 'Security'INSERT INTO @Emp SELECT 'Senthil'INSERT INTO @Emp SELECT 'Ram'INSERT INTO @Emp SELECT 'Kumar'INSERT INTO @Emp SELECT 'Shankar'INSERT INTO @Emp SELECT 'Basha'INSERT INTO @EmpDept SELECT 1, 1INSERT INTO @EmpDept SELECT 2, 1INSERT INTO @EmpDept SELECT 3, 2INSERT INTO @EmpDept SELECT 4, 3INSERT INTO @EmpDept SELECT 5, 3INSERT INTO @EmpSal SELECT 1, 1, 50INSERT INTO @EmpSal SELECT 1, 2, 60INSERT INTO @EmpSal SELECT 1, 3, 60INSERT INTO @EmpSal SELECT 1, 4, 70INSERT INTO @EmpSal SELECT 1, 5, 50INSERT INTO @EmpSal SELECT 1, 6, 60INSERT INTO @EmpSal SELECT 2, 1, 55INSERT INTO @EmpSal SELECT 2, 2, 64INSERT INTO @EmpSal SELECT 2, 3, 64INSERT INTO @EmpSal SELECT 2, 4, 72INSERT INTO @EmpSal SELECT 2, 5, 55INSERT INTO @EmpSal SELECT 2, 6, 66INSERT INTO @EmpSal SELECT 3, 1, 52INSERT INTO @EmpSal SELECT 3, 2, 624INSERT INTO @EmpSal SELECT 3, 3, 684INSERT INTO @EmpSal SELECT 3, 4, 712INSERT INTO @EmpSal SELECT 3, 5, 535INSERT INTO @EmpSal SELECT 3, 6, 660INSERT INTO @EmpSal SELECT 4, 1, 502INSERT INTO @EmpSal SELECT 4, 2, 64INSERT INTO @EmpSal SELECT 4, 3, 84INSERT INTO @EmpSal SELECT 4, 4, 12INSERT INTO @EmpSal SELECT 4, 5, 53INSERT INTO @EmpSal SELECT 4, 6, 60/* I need xml format of output in the following format<ROOT><Output > < Departments> <Department ID=“1" Name=“ Engineering "> <Employees> <Employee ID=“1" Name=“Senthil" > <Salary> <Month ID=“1" Salary=“ 50 "/> <Month ID=“2" Salary=“ 60 "/> <Month ID=“3" Salary=“ 60 "/> <Month ID=“4" Salary=“ 70 "/> <Month ID=“5" Salary=“ 50 "/> <Month ID=“6" Salary=“ 60 "/> </Salary> </Employee> <Employee ID=“2" Name=“Ram" > <Salary> <Month ID=“1" Salary=“ 55"/> <Month ID=“2" Salary=“ 64 "/> <Month ID=“3" Salary=“ 64 "/> <Month ID=“4" Salary=“ 72 "/> <Month ID=“5" Salary=“ 55 "/> <Month ID=“6" Salary=“ 66 "/> </Salary> </Employee> </Employees> </Department > </Departments></Output></ROOT> */" |
|
|
druer
Constraint Violating Yak Guru
314 Posts |
Posted - 2005-11-30 : 12:38:26
|
| I got you a good start with the following. I had a problem trying to get a separate entry for 'Employees', but perhaps the following will get you started and you can figure the rest out:[CODE]select 1 as Tag, NULL as Parent, NULL as [Departments!1],NULL as [Department!2!DeptId],NULL as [Department!2!DeptName],NULL as [Employee!3!EmployeeId],NULL as [Employee!3!EmployeeName]UNION ALLselect 2, 1, NULL, #dept.deptid, #dept.deptname, NULL, NULLfrom #dept UNION ALLselect 3, 2 , NULL, #dept.deptid, #dept.deptname, #emp.empid, #emp.empnamefrom #dept , #empdept , #emp where #empdept.deptid = #dept.deptidand #emp.empid = #empdept.empidorder by [Department!2!DeptId], [Employee!3!EmployeeId]FOR XML EXPLICIT[/CODE] |
 |
|
|
druer
Constraint Violating Yak Guru
314 Posts |
Posted - 2005-11-30 : 13:06:56
|
| I finished off the salary to, and pasted in part of the output, and pasted the output for the first department:select 1 as Tag, NULL as Parent, NULL as [Departments!1],NULL as [Department!2!DeptId],NULL as [Department!2!DeptName],NULL as [Employee!3!EmployeeId],NULL as [Employee!3!EmployeeName],NULL as [Salary!4!Month],NULL as [Salary!4!Pay]UNION ALLselect 2, 1, NULL, #dept.deptid, #dept.deptname, NULL, NULL, NULL, NULLfrom #dept UNION ALLselect 3, 2 , NULL, #dept.deptid, #dept.deptname, #emp.empid, #emp.empname, NULL, NULLfrom #dept , #empdept , #emp where #empdept.deptid = #dept.deptidand #emp.empid = #empdept.empidUNION ALL select 4, 3, NULL, #dept.deptid, #dept.deptname, #emp.empid, #emp.empname, #empsal.MonthId, #empsal.Salaryfrom #dept, #empdept, #emp, #empsalwhere #empdept.deptid = #dept.deptidand #emp.empid = #empdept.empidand #empsal.empid = #emp.empidorder by [Department!2!DeptId], [Employee!3!EmployeeId], [Salary!4!Month]FOR XML EXPLICIT<Departments><Department DeptId="1" DeptName="Engineering"><Employee EmployeeId="1" EmployeeName="Senthil"><Salary Month="1" Pay="50.0000"/><Salary Month="2" Pay="60.0000"/><Salary Month="3" Pay="60.0000"/><Salary Month="4" Pay="70.0000"/><Salary Month="5" Pay="50.0000"/><Salary Month="6" Pay="60.0000"/></Employee><Employee EmployeeId="2" EmployeeName="Ram"><Salary Month="1" Pay="55.0000"/><Salary Month="2" Pay="64.0000"/><Salary Month="3" Pay="64.0000"/><Salary Month="4" Pay="72.0000"/><Salary Month="5" Pay="55.0000"/><Salary Month="6" Pay="66.0000"/></Employee></Department> .. next department...employee .. |
 |
|
|
|
|
|