Jump to content

Pivot table


Sirene

Recommended Posts

  • 1 month later...

Não consigo abrir o link onde estou mas se o que pretendes é colocar linhas como colunas e é apenas de uma tabela, só precisas de uma variavel para guardar as colunas atraves por exemplo de XML e utilizas uma pivot table dentro de uma open query em que o nome das colunas são carregadas da variável. Se quiseres adicionar mais colunas de outra tabela, acrescentas outra pivot table á query

Link to comment
Share on other sites

Se tens tipo 

 Nome | Dia | Horas

1-Joao     5        7

2-Pedro   6        5

3-Joao     8        2

4- Rita      15     8

E o que tu pretendes é por exemplo somar as horas por pessoa e listar por pesso tipo

Joao  |  Pedro |   Rita

9              5           8

 

Mas amanha pode haver mais pessoas e queres que automaticamente liste também as novas pessoas

 

DECLARE @Nomes AS NVARCHAR(MAX)
Declare @query AS NVARCHAR(MAX)

select @Nomes = STUFF((SELECT distinct ',' + QUOTENAME(Nomes) 
                    from dbo.PessoasHoras
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')
        
 set @query 
  = 'select *
      from
      (
        select Nomes, Horas
        from PessoasHoras
      ) x1
         pivot
         (
         sum(Horas)
        for Nomes in ('+ @Nomes +')
             ) b'

exec(@query)
  • Vote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.