3

誰か助けてください..これは私のテーブルです

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

誰かが私の目標を達成する方法を教えてもらえますか? 前もって感謝します..

4

2 に答える 2