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
这可能吗?
答案 0 :(得分:0)
好吧,我担心你将不得不使用动态sql,所以一定要先访问这个link。一旦你这样做,你可以试试这个:
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)