Array
(
)

Como poderia montar um Pivot no SQL Server

Crist
   - 24 mar 2015

Como eu poderia montar um Pivot no SQL Server
Gostaria de apresentar os resultados em colunas separadas, como poderia fazer isso?
Colocar a coluna b.quantidade separada de acordo com entrada é saída
Agradeço
#Código

select 
   case c.tipoentadasaida
     when 'E' then 'Entrada' 
     when 'S' then 'Saida' 
   end,
       a.destino_dataemissao,
       a.inicio_numero_nota,
       a.inicio_descricao_natureza,
       a.destino_razao,
       a.emite_razao,
       b.codigocomercial, 
       b.descricao,
       d.qtdestoque as QtdDoEstoqueAtual,
       b.quantidade as Movimento
   from 
 TB_C_ENTRADA_NOTA a
 inner join TB_D_ENTRADA_NOTA b on a.controleentradanota = b.controleentradanota 
 inner join TB_TIPO_MOVIMENTO c on c.controletipomovimento = a.controletipomovimento
 inner join TB_PRODUTO d on d.codigocomercial = b.codigocomercial 
where b.codigocomercial = 'LR001'         
order by a.destino_dataemissao,c.tipoentadasaida,a.inicio_numero_nota,
       a.inicio_descricao_natureza,a.destino_razao,a.emite_razao, b.quantidade

Marcos P
   - 24 mar 2015

Olá !

Você poderia dar um exemplo da saída que precisa gerar ?

Crist
   - 24 mar 2015

Bom dia

Ficaria assim, hoje o resultado b.quantidade as Movimento vem na mesma coluna, quero que fique assim

SAIDA LR001 LUVA RASPA C/REFORCO 07CM CELMAR NULL 100.00 qtdentrada qtdsaida
ENTRADA LR001 LUVA RASPA C/REFORCO 07CM CELMAR NULL 100.00 qtdentrada qtdsaida

agradeço

Marcos P
   - 24 mar 2015

Não entendi sua resposta...

Você quer que os dados sejam gerados em duas linhas ?

É isso ?

Você consegue usar a tag de código ( Inserir Código ), aqui em cima no edito, para colocar o texto formatado ( e de preferência com o cabeçalho das colunas ) ?

Crist
   - 24 mar 2015

Amigo, veja se assim fica mais fácil

consulta saida (Clique na imagem para abrir em uma nova janela)

#Código


select 
   case c.tipoentadasaida
     when 'E' then 'Entrada' 
     when 'S' then 'Saida'  
   end,
      -- a.destino_dataemissao,
      -- a.inicio_numero_nota,
      -- a.inicio_descricao_natureza,
      -- a.destino_razao,
      -- a.emite_razao,
      -- b.codigocomercial, 
      -- b.descricao,
       d.qtdestoque as QtdDoEstoqueAtual,
       b.quantidade as Movimento,
       'qtdentrada',
       'qtdsaida'
   from 
 TB_C_ENTRADA_NOTA a
 inner join TB_D_ENTRADA_NOTA b on a.controleentradanota = b.controleentradanota 
 inner join TB_TIPO_MOVIMENTO c on c.controletipomovimento = a.controletipomovimento
 inner join TB_PRODUTO d on d.codigocomercial = b.codigocomercial 
where b.codigocomercial = 'LR001'         
order by a.destino_dataemissao,c.tipoentadasaida,a.inicio_numero_nota,
       a.inicio_descricao_natureza,a.destino_razao,a.emite_razao, b.quantidade
       

Marcos P
   - 24 mar 2015

Isso resolve ?

#Código

select
   case c.tipoentadasaida
     when 'E' then 'Entrada'
     when 'S' then 'Saida' 
   end,
      -- a.destino_dataemissao,
      -- a.inicio_numero_nota,
      -- a.inicio_descricao_natureza,
      -- a.destino_razao,
      -- a.emite_razao,
      -- b.codigocomercial,
      -- b.descricao,
       d.qtdestoque as QtdDoEstoqueAtual,
       b.quantidade as Movimento,
   case c.tipoentadasaida
     when 'E'
     then b.quantidade 
     else 0
   end as  qtdentrada,
   case c.tipoentadasaida
     when 'S'
     then b.quantidade 
     else 0
   end as qtdsaida
   from
 TB_C_ENTRADA_NOTA a
 inner join TB_D_ENTRADA_NOTA b on a.controleentradanota = b.controleentradanota
 inner join TB_TIPO_MOVIMENTO c on c.controletipomovimento = a.controletipomovimento
 inner join TB_PRODUTO d on d.codigocomercial = b.codigocomercial
where b.codigocomercial = 'LR001'        
order by a.destino_dataemissao,c.tipoentadasaida,a.inicio_numero_nota,
       a.inicio_descricao_natureza,a.destino_razao,a.emite_razao, b.quantidade

Crist
   - 24 mar 2015

Sim.
Agradeço!