Sql server 具有多维数据集的SQL分组依据

Sql server 具有多维数据集的SQL分组依据,sql-server,tsql,group-by,pivot-table,dynamic-pivot,Sql Server,Tsql,Group By,Pivot Table,Dynamic Pivot,我想在表的末尾添加一个total goals列,但无法按多维数据集进行添加,因为它会说b.x无效。我怎么做 DECLARE @Weeks VARCHAR(MAX) = '' SELECT @Weeks += (QUOTENAME([Week]) + ',') FROM (Select Distinct [Week] from Fixture ) as z SET @Weeks = LEFT(@Weeks, LEN(@Weeks) - 1) print @Weeks DECLARE

我想在表的末尾添加一个total goals列,但无法按多维数据集进行添加,因为它会说b.x无效。我怎么做

 DECLARE @Weeks VARCHAR(MAX) = ''
    SELECT @Weeks += (QUOTENAME([Week]) + ',') 
FROM
(Select Distinct [Week] from Fixture
) as z
SET @Weeks = LEFT(@Weeks, LEN(@Weeks) - 1)
print @Weeks

DECLARE @SQL NVARCHAR(MAX) = ''
SET @SQL = '

    select *
    from
    (
    Select Home as Team, [Week] as Weeks, [Home Score] as Goals From Fixture
    group by Home,Week, [Home Score]
    UNION
    Select Away as Team, [Week] as Weeks, [Away Score] as Goals From Fixture
    group by Away,Week, [Away Score]
    ) as A
PIVOT
(
    MAX(Goals)
For Weeks
    IN(' + @Weeks + ')
    )b


'
exec (@SQL)

您可以像这样更改内部查询:-

Select Home as Team, [Week] as Weeks, [Home Score] as Goals From Fixture
group by Home,Week, [Home Score]
UNION ALL
Select Away as Team, [Week] as Weeks, [Away Score] as Goals From Fixture
group by Away,Week, [Away Score]
UNION ALL
Select 'Total', NULL, SUM([Home Score]) + SUM ([Away Score]) as 'Total Goals' From Fixture
这个逻辑可能会对你有所帮助