gpt4 book ai didi

sql - 如何在没有聚合函数的情况下在sql server中创建枢轴查询

转载 作者:行者123 更新时间:2023-12-01 19:15:59 25 4
gpt4 key购买 nike

我正在使用 MS SQL SERVER 2008 并且我有以下数据:

select * from account;

| PERIOD | ACCOUNT | VALUE |
----------------------------
| 2000 | Asset | 205 |
| 2000 | Equity | 365 |
| 2000 | Profit | 524 |
| 2001 | Asset | 142 |
| 2001 | Equity | 214 |
| 2001 | Profit | 421 |
| 2002 | Asset | 421 |
| 2002 | Equity | 163 |
| 2002 | Profit | 325 |

我想让它们成为这样:

| ACCOUNT | 2000 | 2001 | 2002 |
--------------------------------
| Asset | 205 | 142 | 421 |
| Equity | 365 | 214 | 163 |
| Profit | 524 | 421 | 325 |

我尝试使用pivot query进行查询,但该值必须使用聚合函数并且结果不合适。我该怎么办?

最佳答案

SELECT *
FROM
(
SELECT [Period], [Account], [Value]
FROM TableName
) AS source
PIVOT
(
MAX([Value])
FOR [Period] IN ([2000], [2001], [2002])
) as pvt

另一种方式,

SELECT ACCOUNT,
MAX(CASE WHEN Period = '2000' THEN Value ELSE NULL END) [2000],
MAX(CASE WHEN Period = '2001' THEN Value ELSE NULL END) [2001],
MAX(CASE WHEN Period = '2002' THEN Value ELSE NULL END) [2002]
FROM tableName
GROUP BY Account

关于sql - 如何在没有聚合函数的情况下在sql server中创建枢轴查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14618316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com