【发布时间】:2020-09-12 05:32:54
【问题描述】:
我有一些 SQL Server 表:
- 员工 [EmpID (pk)、姓名、职务]
- 项目 [PID (pk)、EmpID (fk)、PCode、PName、Dept]
这些表是多对一的关系,也就是说,一个员工可以处理多个项目。
我想以这样一种方式显示结果,即每个员工只有一行,并且他从事的所有项目都显示在根据 PCode 分组的列部分中。
当生成的列数未知时,我无法理解如何将行转置到列中。
样本数据:
员工:
EmpId Name Designation
------------------------
001 Mat Manager
002 Ash Developer
003 Paul Analyst
项目:
PID EmpID PCode PName Dept
-------------------------------------
1 001 111 Project1 Sales
2 001 111 Project1.1 Retail
3 001 222 Project2 Banking
4 002 222 Project2.1 Retail
样本输出:
EmpID Name Project-1 Project-2 Project-3
---------------------------------------------------------------------------
001 Abc 111,Project1,Sales 111,Project1.1,Retail 222,Project2,Banking
002 Def 222,Project2.1,Retail
【问题讨论】:
-
以表格格式提供样本数据和您想要的输出
-
更新了问题。请检查
-
你使用的是哪个版本的sql server
-
请向我们展示您的尝试。
标签: sql-server string group-by pivot window-functions