[英]Join 1 to Many from the same table and append to row
SQL Server 2005
1桌
ID Project_id
-------------
1 1
1 2
1 2
1 3
2查询
第一个查询根据ID获得唯一的结果
ID
---
1
2
3
4
5
第二个查询按ID总计project_id的数量
ID Project_id total
--------------------
1 1 1
1 2 2
1 3 1
我正在尝试合并查询,以便结果像这样排成一行
ID Project_id _1 Project_id_2 Project_id_3
-------------------------------------------
1 1 2 1
这可能吗?
好吧,恐怕您将不得不使用动态sql,因此请务必先访问此链接 。 完成此操作后,您可以尝试以下操作:
DECLARE @Project VARCHAR(MAX), @Query VARCHAR(MAX)
SELECT @Project = COALESCE(@Project + ',', '') + QUOTENAME('Project_Id_' + CAST(Project_id AS VARCHAR))
FROM Project
GROUP BY Project_id
SET @Query = '
SELECT Id, '+@Project+'
FROM (SELECT Id, ''Project_Id_'' + CAST(Project_id AS VARCHAR) Project_Id, 1 AS Num FROM Project) P
PIVOT(SUM(Num) FOR Project_Id IN ('+@Project+')) PV'
EXEC(@Query)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.