Еще один способ показать ID в сводной - PullRequest
0 голосов
/ 17 марта 2020

У меня есть следующий код. Есть ли другой способ показать ID в сводной, кроме того, что у меня есть? То, что я имею, выглядит не очень эффективно:

create table #salary(
    id int
    , fNAme varchar(10)
    , salary int
);

insert into #salary(id, fName, salary)
values(1,'jim',1000)
    ,(2,'mike',2000)
    ,(3,'tim',500)
    ,(1,'jim',300)
    ,(2,'mike',400)
    ,(3,'tim',250)  

select 'salary' as salary, id, [jim], [mike], [tim]
from (
    select id, fNAme, salary
    from #salary
) x
PIVOT (
    sum(salary) for fNAme in ([jim], [mike], [tim])
) as pvt

Вывод:

salary  id  jim     mike    tim
salary  1   1300    NULL    NULL
salary  2   NULL    2400    NULL
salary  3   NULL    NULL    750

1 Ответ

0 голосов
/ 03 мая 2020

Если вы ищете альтернативный подход, вы можете рассмотреть условное агрегирование :

select 
      'salary' as salary
    , id
    , sum(case when fName = 'jim'  then salary else null end) as jim 
    , sum(case when fName = 'mike' then salary else null end) as mike
    , sum(case when fName = 'tim'  then salary else null end) as tim
from 
    #salary
group by id

Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...