SQL结果集需要在asp.net/mvc3 webgrid或raw html表中显示透视图吗?

时间:2011-09-24 22:36:19

标签: sql sql-server-2008 asp.net-mvc-3

使用razor转换/转换以下结果集(顶部 - 原始数据)以及在webgrid或html表格中的另一个视图中显示/创建(底部 - 数据的百分比)的最简洁方法是什么?

酒店将变得充满活力(一直在增加)。 THX!

enter image description here

2 个答案:

答案 0 :(得分:0)

为什么你不能尝试以下?

SELECT  Region,
        HotelA
      , HotelB
      , HotelC
FROM    ( SELECT   Hotel ,region
                  , cast(hotelregioncount as numeric(18,2))/cast(totalhotelcount as numeric(18,2)) A
          FROM      hoteltable
        ) p PIVOT ( SUM(A)
                    FOR hotel 
                      IN (HotelA,HotelB,HotelC)
                  ) AS pvt

答案 1 :(得分:0)

这就是你想让列动态化的内容

DECLARE @query NVARCHAR(4000)                  
DECLARE @cols NVARCHAR(2000)
SELECT  @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT
                                '],[' + t2.Hotel
                        FROM    hoteltable AS t2
                        ORDER BY '],[' + t2.Hotel
                        FOR XML PATH('')
                      ), 1, 2, '') + ']'

SET @query =
'SELECT  Region,
        ' + @cols + '
FROM    ( SELECT   Hotel ,region
                  , cast(hotelregioncount as numeric(18,2))/cast(totalhotelcount as numeric(18,2)) A
          FROM      hoteltable
        ) p PIVOT ( SUM(A)
                    FOR hotel 
                      IN (' + @cols + ')
                  ) AS pvt'                 

execute(@query)