Отключить таблицу, как показано на скриншоте - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть эта сводная таблица

Particular_LL   Dr_LL    Cr_LL      Particular_CLL      Dr_CLL      Cr_CLL
------------------------------------------------------------------------------
Loan         3000000.00 3000000.00  Bank A/C OverDraft  100000.00   100000.00

Я пытаюсь выполнить этот запрос для отмены поворота таблицы, но не получаю правильный вывод:

SELECT 
    particular,
    debit,
    credit
FROM
    dbo.Test1 
UNPIVOT
    (particular
     FOR col1 IN ([Particular_LL], [Particular_CLL])) u 
UNPIVOT 
    (debit
     FOR col2 IN (Dr_LL, Dr_CLL)) u 
UNPIVOT 
    (credit
     FOR col3 IN (Cr_LL, Cr_CLL)) u
WHERE 
    right(col1, 2) = right(col2, 2)
    AND right(col1, 2) = right(col3, 2)

Я получаю такой результат:

particular            debit          credit
----------------------------------------------
Loan                  3000000.00    3000000.00
Loan                  3000000.00     100000.00
Loan                   100000.00    3000000.00
Loan                   100000.00     100000.00
Bank A/C OverDraft    3000000.00    3000000.00
Bank A/C OverDraft    3000000.00     100000.00
Bank A/C OverDraft     100000.00    3000000.00
Bank A/C OverDraft     100000.00     100000.00

Мне нужен этот вывод

particular          debit       credit
-------------------------------------------
Loan               3000000.00   3000000.00
Bank A/C OverDraft  100000.00    100000.00

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Вы можете использовать это.

SELECT 
    particular,
    debit,
    credit  
FROM
    dbo.Test1 
UNPIVOT
    (particular
     FOR col1 IN ([Particular_LL], [Particular_CLL])) u 
UNPIVOT 
    (debit
     FOR col2 IN (Dr_LL, Dr_CLL)) u 
UNPIVOT 
    (credit
     FOR col3 IN (Cr_LL, Cr_CLL)) u
WHERE 
    REPLACE(col1, 'Particular_',  '') = REPLACE(col2, 'Dr_',  '')
    AND REPLACE(col1, 'Particular_',  '') = REPLACE(col3, 'Cr_',  '')
0 голосов
/ 21 декабря 2018

Попробуйте это

select Particular_LL as particular, Dr_LL as debit, Cr_LL as credit from test1
union all
select Particular_CLL, Dr_CLL, Cr_CLL from test1
...