Хотите конвертировать строки в столбцы в sql - PullRequest
0 голосов
/ 20 июня 2019

Я хотел бы преобразовать строки таблицы в столбцы.Я пытался сделать с помощью сводной таблицы по запросу ниже, но не повезло.

select Percentage, SGST, CGST
from
(
  select 
    * 
  from #Test 
) d
pivot
(
 max(Amount)
 for Name in (SGST, CGST)
) piv

Здесь моя структура таблицы и запрос.

create table #Test(Name varchar(10),Percentage decimal(10,2),Amount decimal(10,2))

insert into #Test values ('SGST',1.5,1008351.12)
insert into #Test values ('SGST',9,3059686.27)
insert into #Test values ('CGST',1.5,1008351.12)
insert into #Test values ('CGST',9,3059686.27)

select * from #Test

Current Out Put :
--------------------------------
Name    SGST    Amount
SGST    1.50    1008351.12
SGST    9.00    3059686.27
CGST    1.50    1008351.12
CGST    9.00    3059686.27

Expected Out Put :
--------------------------------
CGST   CGSTValue     SGST   SGST Value
1.50   1008351.12    1.50   1008351.12
9.00   3059686.27    9.00   3059686.27

Заранее спасибо!

1 Ответ

3 голосов
/ 20 июня 2019

Вы можете сделать это с помощью условного агрегирования:

select sgst, sum(case when name = 'SGST' then amount end) as sgst_amount,
       sum(case when name = 'CGST' then amount end) as cgst_amount
from test t
group by sgst;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...