Показать все столбцы при использовании сводной - PullRequest
0 голосов
/ 02 ноября 2018

я работаю над созданием динамической таблицы (заголовок из таблицы и ячейки из таблицы) это мой стол

select rrc.Text , rch.Name
from RateColumnHeaders rch inner join
RateRowColumn rrc on rch.RateColumnHeadersId=rrc.RateColumnHeadersId

Text    Name
------------------------
test    Account Type
test2   Account Type
test3   Account Type
test4   Account Type
lorem1  Program
lorem2  Program
lorem3  Program
.           .
.           .
.           .

и после использования метода сводных я получил этот результат, но в то же время мне нужно показать все столбцы, а не только максимум (текст) как я могу достичь этого, пожалуйста?

для меня я хочу показать такой результат

Account Type |  Program |.....
test         |  lorem1  
test2        |  lorem2  
test3        |  lorem3  

. , , это мой сводный запрос

select * from (
select rrc.Disclaimer,rch.Name,rrc.Text 
from RateRowColumn rrc 
inner join RateColumnHeaders rch 
on rrc.RateColumnHeadersId=rch.RateColumnHeadersId
) s pivot ( max(text) for name in ( [Account Type],[Program]) ) pvt 

1 Ответ

0 голосов
/ 02 ноября 2018

Вы не хотите опору (я не думаю). Я думаю, что вы просто хотите перечислить значения в каждой группе в виде списка.

Вы можете использовать условное агрегирование и row_number():

select max(case when name = 'Account Type' then text end) as account_type,
       max(case when name = 'Program' then text end) as program,
       . . .
from (select rrc.Text, rch.Name,
             row_number() over (partition by rch.Name order by rrc.Text) as seqnum
      select rrc.Text, rch.Name
      from RateColumnHeaders rch inner join
           RateRowColumn rrc 
           on rch.RateColumnHeadersId = rrc.RateColumnHeadersId
     ) rrc
group by seqnum;
...