我的数据透视表运行正常,下面是我创建的数据透视表
SET @SQL =
'
SELECT * FROM
(SELECT
User.[Parties]
,User.[Accounts]
,User.[Amount]
FROM User) AS BaseData
PIVOT(
SUM(BaseData.[Amount])
FOR BaseData.[Parties]
IN(' + @Parties + '
)
) AS PivotTable
'
EXEC( @SQL)
还有一个例子,说明@Parties = Tom时我会得到什么
Accounts Tom
Loan 1000
Bank 3000
Bank2 1500
但是我在格式化透视结果的编号时遇到麻烦。我希望它看起来像...
Accounts Tom
Loan 1,000
Bank 3,000
Bank2 1,500
我知道用于执行此操作的代码是...
FORMAT(User.Amount, 'N0') AS Amount
但是我无法在关键结果中得到这一点,有人有任何想法吗?
答案 0 :(得分:1)
Larnu和Gordon都指出,这确实属于表示层。
但是,如果必须的话,请对PIVOT中的BaseData
和MAX
与SUM
进行较小的改动
示例
SET @SQL =
'
SELECT *
FROM (SELECT User.[Parties]
,User.[Accounts]
,[Amount] = format(sum(User.[Amount]),''N0'')
FROM User
GROUP BY User.[Parties]
,User.[Accounts]
) AS BaseData
PIVOT(
MAX(BaseData.[Amount])
FOR BaseData.[Parties]
IN(' + @Parties + '
)
) AS PivotTable
'
EXEC( @SQL)