请有人帮帮我..这是我的桌子
ACCT_NR DEDNCODE DEDN_ALPHA AMOUNT AGING PAY_PERIOD TYPE
20110101401 159 MEM PLAN 16.00 0 012013 S
20110101401 557 PHILHEALTH 175.00 0 012013 S
20110101401 617 S G T I 6.00 0 012013 S
20110101401 634 PAGIBIG C 100.00 0 012013 S
20110101401 761 PSMBFI EP 445.02 0 012013 S
20110101401 762 PSMBFI BG 25.00 0 012013 S
20110101401 009 PSSLAI 2000.00 0 012013 N
20110101401 350 W TAX 786.80 0 012013 N
20110101401 551 AFPMBA ADDL 1054.90 0 012013 N
20110101401 768 PSMBFI EL 3277.78 7 012013 N
这是我实现这一目标的查询。
SELECT [ACCT_NR]
,[DEDNCODE]
,[DEDN_ALPHA]
,[AMOUNT]
,[AGING]
,[PAY_PERIOD]
,[TYPE]
FROM [IFIS_EarnDeduction].[dbo].[NDEDUCTIONS2013] where ACCT_NR = '20110101401' and PAY_PERIOD = '012013'
我想要的结果是这个
MEMPLAN PHILHEALTH SGTI PAGIBIGC PSMBFIEP PSMBFIBG PSSLAI WTAX AFPMBAADDL PSMBFIEL
16.00 175.00 6.00 100.00 445.02 25.00 200.00 786.80 1054.90 3277.78
我用这段代码来生成我想要的..
DECLARE @cols AS NVARCHAR(MAX),
@acctnr NVARCHAR(MAX),
@payperiod NVARCHAR(MAX),
@payperiod2 NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @acctnr = '20110101401';
SET @payperiod = '012013';
SET @payperiod2= '062013';
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(p.DEDN_ALPHA)
from [IFIS_EarnDeduction].[dbo].[NDEDUCTIONS2013] p
where ACCT_NR = '20110101401' and PAY_PERIOD = '012013'
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT ' + @cols + ' from
(
SELECT *
FROM [IFIS_EarnDeduction].[dbo].[NDEDUCTIONS2013]
where ACCT_NR = Cast((' + @acctnr + ') As nvarchar(30))
) x
pivot
(
min(amount)
for DEDN_ALPHA in (' + @cols + ')
) p '
execute(@query)
但结果是这样..这么多空值,数据不在正确的位置
MEMPLAN PHILHEALTH SGTI PAGIBIGC PSMBFIEP PSMBFIBG PSSLAI WTAX AFPMBAADDL PSMBFIEL
NULL NULL NULL NULL NULL NULL NULL 2000.00 NULL NULL
NULL NULL NULL NULL NULL NULL NULL 2000.00 NULL NULL
NULL NULL NULL NULL NULL NULL NULL 2000.00 NULL NULL
NULL NULL NULL NULL NULL NULL NULL 2000.00 NULL NULL
NULL NULL NULL NULL NULL NULL NULL 2000.00 NULL NULL
NULL 16.00 NULL NULL NULL NULL NULL NULL NULL NULL
NULL 16.00 NULL NULL NULL NULL NULL NULL NULL NULL
NULL 16.00 NULL NULL NULL NULL NULL NULL NULL NULL
NULL 16.00 NULL NULL NULL NULL NULL NULL NULL NULL
NULL 16.00 NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL 786.80
NULL NULL NULL NULL NULL NULL NULL NULL NULL 786.80
NULL NULL NULL NULL NULL NULL NULL NULL NULL 786.80
NULL NULL NULL NULL NULL NULL NULL NULL NULL 786.80
NULL NULL NULL NULL NULL NULL NULL NULL NULL 786.80
1054.90 NULL NULL NULL NULL NULL NULL NULL NULL NULL
1054.90 NULL NULL NULL NULL NULL NULL NULL NULL NULL
1054.90 NULL NULL NULL NULL NULL NULL NULL NULL NULL
1054.90 NULL NULL NULL NULL NULL NULL NULL NULL NULL
1054.90 NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL 175.00 NULL NULL NULL NULL NULL NULL
NULL NULL NULL 175.00 NULL NULL NULL NULL NULL NULL
NULL NULL NULL 175.00 NULL NULL NULL NULL NULL NULL
NULL NULL NULL 175.00 NULL NULL NULL NULL NULL NULL
NULL NULL NULL 175.00 NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL 6.00 NULL
NULL NULL NULL NULL NULL NULL NULL NULL 6.00 NULL
NULL NULL NULL NULL NULL NULL NULL NULL 6.00 NULL
NULL NULL NULL NULL NULL NULL NULL NULL 6.00 NULL
NULL NULL NULL NULL NULL NULL NULL NULL 6.00 NULL
NULL NULL 100.00 NULL NULL NULL NULL NULL NULL NULL
NULL NULL 100.00 NULL NULL NULL NULL NULL NULL NULL
NULL NULL 100.00 NULL NULL NULL NULL NULL NULL NULL
NULL NULL 100.00 NULL NULL NULL NULL NULL NULL NULL
NULL NULL 100.00 NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL 445.02 NULL NULL NULL
NULL NULL NULL NULL NULL NULL 445.02 NULL NULL NULL
NULL NULL NULL NULL NULL NULL 445.02 NULL NULL NULL
NULL NULL NULL NULL NULL NULL 445.02 NULL NULL NULL
NULL NULL NULL NULL NULL NULL 445.02 NULL NULL NULL
NULL NULL NULL NULL 25.00 NULL NULL NULL NULL NULL
NULL NULL NULL NULL 25.00 NULL NULL NULL NULL NULL
NULL NULL NULL NULL 25.00 NULL NULL NULL NULL NULL
NULL NULL NULL NULL 25.00 NULL NULL NULL NULL NULL
NULL NULL NULL NULL 25.00 NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL 3277.78 NULL NULL NULL NULL
NULL NULL NULL NULL NULL 3277.78 NULL NULL NULL NULL
NULL NULL NULL NULL NULL 3277.78 NULL NULL NULL NULL
NULL NULL NULL NULL NULL 3277.78 NULL NULL NULL NULL
有人可以建议我如何实现我的目标吗?提前致谢..