我需要在.net中创建一个数据透视表。不能使用任何第三方控件(除非它是免费的)。我试图找到一些文档来解释如何创建数据透视表(算法或步骤),但几乎所有的东西都与excel有关。谁知道如何在c#中创建数据透视表?谢谢
发布于 2010-12-01 17:06:11
在这里帮助http://msdn.microsoft.com/en-us/library/aa172756%28SQL.80%29.aspx
实际表:
Year Quarter Amount
1990 1 1.1
1990 2 1.2
1990 3 1.3
1990 4 1.4
1991 1 2.1
1991 2 2.2
1991 3 2.3
1991 4 2.4
1992 4 2.4
期望输出:(这里的q表示季度)
Year Q-1 Q-2 Q-3 Q-4
1990 1.1 1.2 1.3 1.4
1991 2.1 2.2 2.3 2.4
1992 0.0 0.0 0.0 2.4
查询:
Use Northwind
GO
CREATE TABLE Pivot
( Year SMALLINT,
Quarter TINYINT,
Amount DECIMAL(2,1) )
GO
INSERT INTO Pivot VALUES (1990, 1, 1.1)
INSERT INTO Pivot VALUES (1990, 2, 1.2)
INSERT INTO Pivot VALUES (1990, 3, 1.3)
INSERT INTO Pivot VALUES (1990, 4, 1.4)
INSERT INTO Pivot VALUES (1991, 1, 2.1)
INSERT INTO Pivot VALUES (1991, 2, 2.2)
INSERT INTO Pivot VALUES (1991, 3, 2.3)
INSERT INTO Pivot VALUES (1991, 4, 2.4)
INSERT INTO Pivot VALUES (1992, 4, 2.4)
GO
SELECT * FROM Pivot
GO
SELECT Year,
SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Northwind.dbo.Pivot
GROUP BY Year
GO
另一个输出:
SELECT P1.*, (P1.Q1 + P1.Q2 + P1.Q3 + P1.Q4) AS YearTotal
FROM (SELECT Year,
SUM(CASE P.Quarter WHEN 1 THEN P.Amount ELSE 0 END) AS Q1,
SUM(CASE P.Quarter WHEN 2 THEN P.Amount ELSE 0 END) AS Q2,
SUM(CASE P.Quarter WHEN 3 THEN P.Amount ELSE 0 END) AS Q3,
SUM(CASE P.Quarter WHEN 4 THEN P.Amount ELSE 0 END) AS Q4
FROM Pivot AS P
GROUP BY P.Year) AS P1
GO
发布于 2009-07-01 15:36:14
MS-Access具有TRANSFORM命令(执行透视),因此您可以使用ADO.NET查询ms-access mdb文件,然后使用直通查询获得无法透视的数据源(通常是MS-SQL/T-SQL)。我做了一个概念上的证明,它起作用了,比使用数组来做轴心的VBScript实现缩短了大约5000LOC。
通常关于MS-Access的贬低评论不适用于这里,因为您实际上并没有将数据存储在MS-Access中。
发布于 2011-02-23 19:55:09
CellSetGrid是一个开源的ASP .Net (c#)控件,它提供了类似于透视表的功能。
以前可以在这个网站上下载:http://www.SQLServerAnalysisServices.com
现在,该网站不再承载此控件。所以我已经上传了控件的源代码-- CellSetGrid here。
的数据透视表
https://stackoverflow.com/questions/1069677
复制相似问题