SQL Server中的数据透视表具有大型数据集

时间:2016-02-14 05:11:05

标签: sql sql-server pivot pivot-table

我有一个大型数据集,并且我正在尝试在SQL Server中复制excel数据透视表。我无法找到一个示例,我不必使用T-SQL中的PIVOT函数手动命名列标题。

我正在寻找一种方法,使用SELECT DISTINCT [column 1]作为我的行名,使用SELECT DISTINCT [COLUMN 2]作为我的列名,并使用第三列中的数据填充该表。

请帮忙!

1 个答案:

答案 0 :(得分:0)

试试这个:

    DECLARE @v_Columns VARCHAR(MAX),@v_StartDate DATETIME = '09/15/2015',@v_EndDate DATETIME = '12/15/2020',@v_Query VARCHAR(MAX)SELECT @v_Columns = COALESCE(@v_Columns,'[') + convert(varchar, Date, 101) + '],[' 
FROM 
(SELECT DISTINCT Date FROM view_wc_sessions_info) th
WHERE
th.Date BETWEEN @v_StartDate AND @v_EndDate

SET @v_Columns = SUBSTRING(@v_Columns, 1, LEN(@v_Columns)-2)

SET @v_Query = 

'SELECT
*
FROM
(
 select [Total], Date, fk_student_rcid
  from view_WC_SESSIONS_Info th
WHERE
th.Date BETWEEN ''' + CONVERT(VARCHAR(50), @v_StartDate, 101) + '''
AND ''' + CONVERT(VARCHAR(50), @v_EndDate, 101) + '''
) src
PIVOT
(
COUNT(src.[Total])
FOR src.Date IN (' + @v_Columns + ')
) AS pivotview'

EXEC(@v_Query)