我从一个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网格视图中表示如下:
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 - - - - - - - - -- -- -- -- -- --
如何在SQLServer2005或ASP.NET2.0中完成此操作?
请给予PIVOT的示例查询,因为它需要使用一些聚合函数。
4条答案
按热度按时间nfs0ujit1#
您需要Pivot命令。我不熟悉该命令的用法,但geekswithblogs有一个很好的教程来教您如何使用它。
3ks5zfa02#
使用PIVOT函数无法(干净地)实现这一点,因为PIVOT函数要求您预定义要输出的列。
由于月份的天数不同,因此您必须编写12个查询。
在我看来,透视应该作为UI的一部分来完成。不过,聚合是在SQL端做的一件合适的事情。
x6492ojm3#
我认为您希望了解如何在SQL查询中使用PIVOT命令。
9gm1akwq4#
您可能需要使用DevExpress之类的工具,它提供了pivot table。然后,您可以将透视表绑定到数据,它将为您完成这项工作。