Sql Query将来自两个表的数据分组

时间:2012-04-10 04:24:54

标签: asp.net sql-server-2008

我有两张表DepartmentEmployee

部门表格如下:

   ID     DeptName
   1      IT
   2      CSE
   3      ECE

员工表:

   ID     DeptID     EmployeeName    Salary
   1       1         John            10000
   2       1         Bob             15000
   3       2         Akon            12000
   4       2         Smith           20000

现在我想以这样的方式对数据进行分组,以便获得包含以下列的以下结果:

  ID      DeptName      Employee 
   1       IT            John,10000
                         Bob,15000

   2       CSE           Akon,12000
                         Smith,20000

我们可以使用SQL组函数或任何其他方式执行此类操作吗?

请帮帮我。

谢谢, Rajbir

1 个答案:

答案 0 :(得分:3)

此:

select final.deptId, d.deptName,
  e3.employeename + ',' + cast(e3.salary as varchar) employee
from employee e3
left join (
  select e1.id, e1.deptId from employee e1
  left join employee e2
  on e1.deptId = e2.deptId and e1.id > e2.id
  where e2.id is null
) final on e3.id = final.id
left join department d on d.id = final.deptId

结果:

+--------+----------+-------------+
| DEPTID | DEPTNAME |  EMPLOYEE   |
+--------+----------+-------------+
|      1 | IT       | John,10000  |
|        |          | Bob,15000   |
|      2 | CSE      | Akon,12000  |
|        |          | Smith,20000 |
+--------+----------+-------------+

请注意,“空白”值实际上填充了null值。

如果您对此有任何疑问,请与我联系。