Sql server 如屏幕截图所示取消Pivot表
我有这张透视表Sql server 如屏幕截图所示取消Pivot表,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我有这张透视表 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 我尝试通过此查询取
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
试试这个
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
你可以用这个
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_', '')