我从sql查询中得到了这样的结果
Month Day Customer Item
------------------------------------------
January 1 John Pencil
January 1 Jack ---
January 1 Steve Stapler
January 2 John ---
January 2 Jack ---
January 2 Steve VisitingCard
January 3 John ---
January 3 Jack Marker
January 3 Steve ---
January 4 John ---
January 4 Jack ---
January 4 Steve ---
January 5 John Scrapbook
January 5 Jack ---
January 5 Steve ---
....
....
....
February 1 John ---
February 1 Jack ---
February 1 Steve Marker
我想在asp.net gridview中表示如下
January
Customer 1 2 3 4 5 6 7 8 9 10 11 ... 25 26 27 28 29 30 31
---------------------------------------------------------
John P - - - N - - - - -- -- -- -- -- -- -- -- --
Jack - - M - - - - - - -- -- -- -- -- -- -- -- --
Steve S V - - - - - - - -- -- -- -- -- -- -- -- --
February
Customer 1 2 3 4 5 6 7 8 9 10 11 ... 25 26 27 28
------------------------------------------------
John - - - - - - - - - -- -- -- -- -- --
Jack - - - - - - - - - -- -- -- -- -- --
Steve M - - - - - - - - -- -- -- -- -- --
如何在SQL Server 2005或asp.net 2.0中完成此操作?
请提供PIVOT的示例查询,因为它需要使用一些聚合函数。
答案 0 :(得分:4)
您需要的是Pivot命令。我不熟悉命令的用法,但geekswithblogs有一个很好的教程如何使用它。
答案 1 :(得分:3)
你不能(干净地)使用PIVOT函数实现这一点,因为PIVOT函数要求你预先定义输出的列。
由于几个月的天数不同,您必须编写12个查询。
IMO旋转应始终作为UI的一部分完成。尽管
,但在SQL端进行聚合是一件合适的事情编辑:如果你解释你的数据网格是如何实际构建的(即P等来自哪里),那么我可以帮助你生成一些合适的SQL。
答案 2 :(得分:1)
我认为您希望在SQL查询中使用PIVOT命令。
答案 3 :(得分:0)
您可能希望使用DevExpress之类的工具,为您提供pivot table。然后,您可以将数据透视表绑定到您的数据,它可以为您完成工作。