我有一个大型数据集,并且我正在尝试在SQL Server中复制excel数据透视表。我无法找到一个示例,我不必使用T-SQL中的PIVOT
函数手动命名列标题。
我正在寻找一种方法,使用SELECT DISTINCT [column 1]
作为我的行名,使用SELECT DISTINCT [COLUMN 2]
作为我的列名,并使用第三列中的数据填充该表。
请帮忙!
答案 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)