sql - 查询未产生期望的结果

标签 sql sql-server sql-server-2008

下面是我的表-group_table的表结构

enter image description here

我需要的结果应该如下

下面是我尝试使用的查询。但没有产生预期的结果。

SELECT * FROM 
(
SELECT A.PARENTID,A.NAME,A.CAPTION,A.PMKID,A.MKTPLANID,A.CATEGORY
FROM GROUP_TABLE A
)P
PIVOT
(
MAX(NAME)
FOR CAPTION IN ([Rollup],[Appeal Category],[PME])
)S

最佳答案

使用条件聚合可能会更容易:

select mktplanid,
       max(case when caption = 'Rollup' then name end) as rollup,
       max(case when caption = 'Appeal Category' then name end) as appealcategory,
       max(case when caption = 'Planned Appeal' then name end) as plannedappeal,
       max(case when caption = 'PME' then name end) as PME,
       max(pmkid) as pmkid
from (select gt.*,
             row_number() over (partition by caption, mktplanid ORDER BY mktplanid) as seqnum 
      from group_table gt
     ) gt
group by mktplanid, seqnum;

关于sql - 查询未产生期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36852065/

相关文章:

php - MySQL 数据库中的数据未更新。有什么想法吗?

mysql - 使用 SQL 更新数据库中的数据

java - 我的 JDBC 有问题,但我不知道为什么

c# - 按钮有时会重定向到 "This page cannot be displayed"

sql-server-2008 - 如何解决 Reporting Services 的错误

sql - 在 PostgreSql 中计算百分比

sql-server - 将一行转换为列

c# - 选择查询以从 SQL Server 获取数据

sql-server - 从CATCH block 返回OUTPUT错误

sql-server-2008 - DateTime2 之后的数字是用于纳秒目的吗?