我有付款代码号码和表Paycodes 名称,我有金额在monthlyTransaction。如下:如何在SQL中使用Pivot变量?
Paycodes
Code Name
1 Basic Salary
2 Variable Deduction Amount
3 Fixed/Var Insurance PayCode
MonthlyTransaction
Code Amount
1 3000
2 10000
1 130000
1 150000
3 120000
我希望它是这样使用数据透视
Basic Salary Variable Deduction Amount Fixed/Var Insurance PayCode
31000 10000 120000
我想用透视来总结每个Paycode的金额,我用这样的: -
DECLARE @data AS NVARCHAR(MAX)
DECLARE @query AS NVARCHAR(MAX)
-- DECLARE @data TABLE
--(
-- PaycodeName NVARCHAR(max)
--)
--INSERT INTO @data
-- (PaycodeName)
--select dbo.Paycode.PayCodeName FROM dbo.Paycode
select @data = Paycode.PayCodeName FROM Paycode
set @query = 'SELECT * FROM (
SELECT Paycode.Name , MonthlyTransaction.Amount
From MonthlyTransaction
LEFT JOIN dbo.Paycode ON Paycode.code = MonthlyTransaction.Paycode
) AS s
PIVOT
(
SUM(Amount)
FOR Paycode.Name IN ('[email protected]+')
) AS pvt '
EXECUTE Sp_executesql @query
当我打印@data时,它仅检索最后的付费代码! 任何人都可以帮忙吗?
[SQL Server动态PIVOT q的可能重复uery?](http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) –
这个关键点与select @data有什么关系? – Jonny
@jonny ...它应该得到所有的付费代码名称! –