Problema com Pivot

28/10/2015

0

Prezados,

Estou realizando o pivot, mas tive um problema.

O código abaixo se trata de uma tabela de cotações onde o pivot acontece na coluna C8_FORNECE até ai tudo bem.

Mas em algumas situações acontece de um cliente ter mais de uma cotação, como é necessário definir um agrupador para o pivot, inicialmente filtrei pelo menor valor, mas desta forma não consigo visualizar as outras cotações de um mesmo fornecedor.

Algo que possa ser feito?

Desde já agradeço.


DECLARE @ColunasPivot VARCHAR(8000)
DECLARE @GrupoPivot NVARCHAR(MAX)

SELECT  @ColunasPivot = COALESCE(@ColunasPivot + ',[' + CAST(C8_FORNECE AS VARCHAR) + ']', '[' + CAST(C8_FORNECE AS VARCHAR)+ ']')
FROM dbo.tabelaCotacao
WHERE C8_NUM = '002095' AND D_E_L_E_T_ <> '*'
GROUP BY C8_FORNECE
PRINT @ColunasPivot

SET @GrupoPivot = N'
SELECT C8_ITEM, C8_PRODUTO, C8_UM, C8_QUANT, B1_DESC,  ' + @ColunasPivot + ' ' + 
'
FROM (
      SELECT C8_ITEM, C8_PRODUTO, C8_UM, C8_QUANT, SB1_1.B1_DESC, C8_FORNECE, C8_TOTAL 
      FROM dbo.tabelaCotacao INNER JOIN 
	  tabelaProduto AS SB1_1 ON tabelaCotacao.C8_PRODUTO = SB1_1.B1_COD
      WHERE C8_NUM = ''002095'' AND tabelaCotacao.D_E_L_E_T_ <> ''*'') AS P
PIVOT
(MIN(C8_TOTAL) for C8_FORNECE in (' + @ColunasPivot + ')) AS Pvt
ORDER BY C8_PRODUTO
'
PRINT @GrupoPivot
EXECUTE(@GrupoPivot)


Essa dúvida foi gerada a partir de um comentário no artigo PIVOT no SQL Server: invertendo linhas e colunas em um exemplo real
Diego Campos

Diego Campos

Responder

Posts

28/10/2015

Alex Lekao

acompanhando.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar