ASP.NET SQL查询

2g32fytz  于 2022-11-19  发布在  .NET
关注(0)|答案(4)|浏览(296)

我从一个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的示例查询,因为它需要使用一些聚合函数。

nfs0ujit

nfs0ujit1#

您需要Pivot命令。我不熟悉该命令的用法,但geekswithblogs有一个很好的教程来教您如何使用它。

3ks5zfa0

3ks5zfa02#

使用PIVOT函数无法(干净地)实现这一点,因为PIVOT函数要求您预定义要输出的列。
由于月份的天数不同,因此您必须编写12个查询。
在我看来,透视应该作为UI的一部分来完成。不过,聚合是在SQL端做的一件合适的事情。

x6492ojm

x6492ojm3#

我认为您希望了解如何在SQL查询中使用PIVOT命令。

9gm1akwq

9gm1akwq4#

您可能需要使用DevExpress之类的工具,它提供了pivot table。然后,您可以将透视表绑定到数据,它将为您完成这项工作。

相关问题