Mad*_*hik 8 t-sql sql-server rows
我有一个列的表sales(int),month(int).我想检索每个月对应的销售总额.我需要以每个月对应的12列的形式输出,其中将有一个包含每列(月)销售额的记录.
Ron*_*erg 10
您应该看一下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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22394 次 |
| 最近记录: |