0

我有两张桌子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 组函数或任何其他方式做这样的事情吗?

请帮我。

谢谢,拉杰比尔

4

1 回答 1

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

结果是:

+--------+----------+-------------+
| 部门 | 部门名称 | 员工 |
+--------+----------+-------------+
| 1 | 资讯科技 | 约翰,10000 |
| | | 鲍勃,15000 |
| 2 | CSE | 阿康,12000 |
| | | 史密斯,20000 |
+--------+----------+-------------+

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

如果您有任何问题,请告诉我。

于 2012-04-10T04:47:03.050 回答