SQL查询中求和汇总后如何保留列名

一个橙子

我正在查询SQL Server,其中有多列具有汇总汇总的列。我想知道是否有一种方法在对它们中的每一个求和之后都保留列名。

我想避免在所选列之后立即使用别名,因为别名的数字和名称会随着时间而变化。

我的结果示例:

https://i.stack.imgur.com/YAWWu.png

我的查询:

DECLARE @SQLQUERY AS NVARCHAR(MAX)

DECLARE @PivotColumns AS NVARCHAR(MAX)
DECLARE @SumColumns as NVARCHAR(MAX)

SELECT @PivotColumns = COALESCE(@PivotColumns + ',','') + QUOTENAME(description)
FROM [example-base].dbo.table

SELECT @SumColumns = 'sum('+Replace(@PivotColumns,',','),sum(')+')'

SET @SQLQUERY = N'SELECT TOP(100) Weeks, Years, Code,'+@SumColumns+ '
FROM [example-base].dbo.table
group by Weeks,Years,Code'

EXECUTE sp_executesql @SQLQUERY

有没有办法让列名保持汇总?

罗姆

通过使用文本构建查询,请注意潜在的性能问题。此外,当两次执行之间的列数会发生变化时,您的结果可能无法预测。

要将别名添加到您的列,可以使用以下语句:

DECLARE @SumColumns AS nvarchar(MAX);

SELECT @SumColumns = CONCAT(COALESCE(@PivotColumns + ',', ''), 'SUM(', QUOTENAME(description), ') AS ', QUOTENAME(description))
FROM [example-base].dbo.table

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章