誰か助けてください..これは私のテーブルです
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
誰かが私の目標を達成する方法を教えてもらえますか? 前もって感謝します..