Sql 分离柱中的CTE分区

Sql 分离柱中的CTE分区,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正试图获得一个用户帐户和注释类型的分区,我需要的是为每个管理器记录(中间)设置一行,并在多个列中计算用户对每个不同注释类型所做的注释数量 我可以使用以下方法获得正确的结果: WITH CTE AS ( SELECT AMID, ActionTypeID, COUNT(*) AS total, ROW_NUMBER() OVER (PARTITION BY AMID, ActionTypeID ORDER BY AMID) AS RN FROM personNote G

我正试图获得一个用户帐户和注释类型的分区,我需要的是为每个管理器记录(中间)设置一行,并在多个列中计算用户对每个不同注释类型所做的注释数量

我可以使用以下方法获得正确的结果:

WITH CTE AS
(
    SELECT AMID, ActionTypeID, COUNT(*) AS total, ROW_NUMBER() OVER  (PARTITION BY AMID, ActionTypeID ORDER BY AMID) AS RN
    FROM personNote
    GROUP BY AMID, ActionTypeID
)
SELECT * FROM CTE
这给了我类似的东西:

AMID    ActionTypeID    total   RN
1       12              231002  1
1       15              354936  1
3       0               74441   1
3       3               4       1
3       7               18      1
AMID   ActionTypeID   Total     ActionTypeID2   Total2
1      12             231002    15              354936   
但这在我需要将代码放入的报告工具中不起作用,我需要每个actionType ID位于不同的列中,如下所示:

AMID    ActionTypeID    total   RN
1       12              231002  1
1       15              354936  1
3       0               74441   1
3       3               4       1
3       7               18      1
AMID   ActionTypeID   Total     ActionTypeID2   Total2
1      12             231002    15              354936   

提前谢谢

对于具有非独立/重复柱的动态轴

现在,这将移动或压缩列数。例如,如果AMID只有一个ActionTypeID,则无论ActionTypeID是什么,值都将显示在第1列和第2列中。这将是一件小事/更容易使列变得清晰,从而“更宽”

返回

使用以下测试数据

Create Table #PersonNote (AMID int,ActionTypeID int)
Insert Into #PersonNote values
(1,12),(1,12),(1,12),(1,12),(1,12),(1,12),(1,12),                -- Cnt 7
(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),  -- Cnt 9
(3,3),(3,3),(3,3),                                               -- Cnt 3
(3,7),(3,7),(3,7),(3,7),(3,7),(3,7),                             -- Cnt 6
(3,12)                                                           -- Cnt 1

对于具有非独立/重复柱的动态轴

现在,这将移动或压缩列数。例如,如果AMID只有一个ActionTypeID,则无论ActionTypeID是什么,值都将显示在第1列和第2列中。这将是一件小事/更容易使列变得清晰,从而“更宽”

返回

使用以下测试数据

Create Table #PersonNote (AMID int,ActionTypeID int)
Insert Into #PersonNote values
(1,12),(1,12),(1,12),(1,12),(1,12),(1,12),(1,12),                -- Cnt 7
(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),(1,15),  -- Cnt 9
(3,3),(3,3),(3,3),                                               -- Cnt 3
(3,7),(3,7),(3,7),(3,7),(3,7),(3,7),                             -- Cnt 6
(3,12)                                                           -- Cnt 1

您知道操作类型的最大数量吗?SQL查询返回固定数量的列。有85种不同的ActionType,personNote表中可以输入的条目数量没有限制。您知道
ActionType
的最大数量吗?SQL查询返回固定数量的列。有85种不同的操作类型,可以在personNote表中输入的条目数量没有限制非常感谢您的回答,非常有效。@OwainEsau乐于帮助非常感谢您的回答,非常有效。@OwainEsau乐于帮助