我有一个findhighest_secondstep这样的数据表:
id department top_employee highest_salary rownumber1
-----------------------------------------------------------
5 Finance Shane 6300 1
10 Finance Laura 6300 1
7 HR Vik 7200 1
3 IT Kate 7500 1
14 Marketing Elice 6800 1
6 Sales Shed 8000 1
Run Code Online (Sandbox Code Playgroud)
我想返回一个包含列部门,top_employee和highest_salary的表,而我知道在财务部门,我们有两个人的工资相同。所以我想展示所有这些。
SELECT
hs.department AS department,
top_employee = STUFF((SELECT ', ' + top_employee
FROM findhighest_secondstep
FOR XML PATH('')), 1, 1, '')
FROM
findhighest_secondstep hs
GROUP BY
hs.department
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
department top_employee
--------------------------------------------------
Finance Shane, Laura, Vik, Kate, Elice, Shed
HR Shane, Laura, Vik, Kate, Elice, Shed
IT Shane, Laura, Vik, Kate, Elice, Shed
Marketing Shane, Laura, Vik, Kate, Elice, Shed
Sales Shane, Laura, Vik, Kate, Elice, Shed
Run Code Online (Sandbox Code Playgroud)
我想要的是:
department top_employee highest_salary
---------------------------------------------
Finance Shane, Laura 6300
HR Vik 7200
IT Kate 7500
Marketing Elice 6800
Sales Shed 8000
Run Code Online (Sandbox Code Playgroud)
您需要一个相关的子查询:
SELECT hs.department AS department,
STUFF( (SELECT ', ' + top_employee
FROM findhighest_secondstep hs2
WHERE hs2.department = hs.department
FOR XML PATH('')
), 1, 2, ''
) as top_employees
FROM findhighest_secondstep hs
GROUP BY hs.department
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |