gpt4 book ai didi

sql-server - SQL服务器: convert rows to columns

转载 作者:行者123 更新时间:2023-12-02 12:08:52 25 4
gpt4 key购买 nike

我有一个包含列sales(int)month(int)的表格。我想检索每个月对应的销售额总和。我需要以 12 列的形式输出,对应于每个月,其中将有一条记录,其中包含每列(月)的销售额。

最佳答案

您应该看看PIVOT用于切换行与列。这可以防止每个月都有 select 语句。像这样的事情:

DECLARE @salesTable TABLE
(
[month] INT,
sales INT
)

-- Note that I use SQL Server 2008 INSERT syntax here for inserting
-- multiple rows in one statement!
INSERT INTO @salesTable
VALUES (0, 2) ,(0, 2) ,(1, 2) ,(1, 2) ,(2, 2)
,(3, 2) ,(3, 2) ,(4, 2) ,(4, 2) ,(5, 2)
,(6, 2) ,(6, 2) ,(7, 2) ,(8, 2) ,(8, 2)
,(9, 2) ,(10, 2) ,(10, 2) ,(11, 2) ,(11, 2)

SELECT [0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11]
FROM
(
SELECT [month], sales
FROM @salesTable
) AS SourceTable
PIVOT
(
SUM(sales)
FOR [month] IN ([0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11])
) AS PivotTable

关于sql-server - SQL服务器: convert rows to columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/801895/

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