在不使用pivot关键字的情况下透视一张表

问题描述 投票:0回答:1

我有源数据。
输入

政策名称 金额 类型
PN1 100 P1
PN2 200 P2
PN3 300 P3
PN4 400 P1
PN1 500 P2

输出

政策名称 P1 P2 P3
PN1 100 500
PN2 200
PN3 300
PN4 400

如何在不使用枢纽关键字的情况下得到这个

我尝试使用pivot,它会起作用。但我想使用不带pivot关键字的单个查询

sql pivot pivot-table
1个回答
0
投票

这个问题已被询问和回答了大约一百万次。条件聚合就是解决方案。由于您发布了示例数据和所需的输出,我认为您应该得到答案,而不是作为重复项关闭。

declare @Something table
(
    Policyname char(3)
    , amount int
    , type char(2)
)
insert @Something values
('PN1', 100, 'P1')
, ('PN2', 200, 'P2')
, ('PN3', 300, 'P3')
, ('PN4', 400, 'P1')
, ('PN1', 500, 'P2')

select s.Policyname
    , p1 = sum(case when s.type = 'P1' then amount end)
    , p2 = sum(case when s.type = 'P2' then amount end)
    , p3 = sum(case when s.type = 'P3' then amount end)
from @Something s
group by s.Policyname
order by s.Policyname
© www.soinside.com 2019 - 2024. All rights reserved.