Ir para conteúdo

SQL - resultado de 3 últimos preços em 3 colunas e não 3 linhas


araujoronaldo

Posts Recomendados


  • Tópicos Que Criei:  67
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  269
  • Conteúdo/Dia:  0.05
  • Reputação:   9
  • Pontos/Conquistas:  2.029
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Dispositivo:  Windows

Bom dia Pessoal.

Alguém saberia dizer se, no SQL Server, existe algum recurso exceto PIVOT TABLE, que eu consiga mostrar o resultado dos 3 últimos preços de compra, que estão sendo apresentados em 3 linhas e apresentá-los em uma única linha em 3 colunas ?

Segue a sentença SQL abaixo.   Como as 3 linhas possuem os mesmos dados, o que difere é somente o preço unitário das compras. Gostaria de colunar estes preços em 3 colunas, o que resultaria em uma única linha.

SELECT TOP 3
ROW_NUMBER() OVER(ORDER BY TMOV.IDMOV) as LINHA,
TPRODUTO.CODIGOPRD AS CÓDIGO,
TPRODUTO.DESCRICAO AS PRODUTO,
TTB1.DESCRICAO     AS CLASSIFICAÇÃO,
TITMMOV.CODUND     AS UND,
TMOV.DATASAIDA     AS MOVIMENTADO,     
FCFO.CODETD        AS UF,
TITMMOV.PRECOUNITARIO

FROM TMOV (nolock) INNER JOIN FCFO (nolock)
ON TMOV.CODCOLIGADA = FCFO.CODCOLIGADA        AND
   TMOV.CODCFO      = FCFO.CODCFO
INNER JOIN TITMMOV (nolock)
ON TMOV.CODCOLIGADA  =  TITMMOV.CODCOLIGADA   AND
   TMOV.IDMOV        =  TITMMOV.IDMOV
INNER JOIN TPRODUTO (nolock)
ON TPRODUTO.CODCOLPRD = TITMMOV.CODCOLIGADA   AND
   TPRODUTO.IDPRD     = TITMMOV.IDPRD
INNER JOIN TPRODUTODEF (NOLOCK)
ON TPRODUTO.CODCOLPRD    = TPRODUTODEF.CODCOLIGADA AND
   TPRODUTO.IDPRD        = TPRODUTODEF.IDPRD
INNER JOIN TTB1 (NOLOCK)
ON TPRODUTODEF.CODCOLIGADA = TTB1.CODCOLIGADA      AND
   TPRODUTODEF.CODTB1FAT   = TTB1.CODTB1FAT

WHERE  
      TMOV.CODCOLIGADA = 1                   AND
      TMOV.STATUS <> 'C'                     AND
      TMOV.CODTMV like '1.2%'                AND
      TPRODUTO.CODIGOPRD = '05.002.01127'

GROUP BY
TPRODUTO.CODIGOPRD,
TPRODUTO.DESCRICAO,
TTB1.DESCRICAO,
TITMMOV.CODUND,
TMOV.IDMOV,
TMOV.DATASAIDA,
FCFO.CODETD,
TITMMOV.PRECOUNITARIO
      
order by tmov.DATASAIDA desc
 

 

Link para comentar
Compartilhar em outros sites

  • 2 semanas depois...

  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  10
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  82
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  35

Tente usar o ROW_NUMBER(), criando subquery

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  1.140
  • Conteúdo/Dia:  0.22
  • Reputação:   60
  • Pontos/Conquistas:  6.161
  • Conteúdo Resolvido:  0
  • Dias Ganho:  33
  • Status:  Offline
  • Idade:  42
  • Dispositivo:  Windows

Araujo,

Tente utilizar o recursos das CTE ( Common Table Expression  ) do SQL para fazer cursividade.

Abs !!!

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.