SINTAXE MAX SQL SERVER

08/03/2016

0

Ola pessoal. Minha primeira vez aqui. Preciso fazer uma select no sqlserver na qual busco dados em três tabelas, porem preciso filtrar o maior valor de estoque. Segue abaixo os nomes das tabelas e o exemplo de minha consulta.
Tableas=> Produtos, estoque, preços

Select P.CODPROD, P.DESCRPROD, P.REFFORN, P.MARCA, E.ESTOQUE, V.VLRVENDA
FROM TGFPRO P, TGFEST E, TGFEXC V
WHERE P.CODPROD = E.CODPROD AND P.CODPROD = V.CODPROD AND MARCA = 'GERAL'

Como cada produto possui varias id's na tabela de preços a select me retorna valores duplicados, triplicados,..... etc
Preciso utilizar o MAX para filtrar o MAIOR valor de estoque.
Carlos Felix

Carlos Felix

Responder

Posts

08/03/2016

Marcos P

Sempre que inserir código no post utilize a tag <Inserir Código>, isso facilita o entendimento do problema...

Assumindo que todas as demais colunas ( P.CODPROD, P.DESCRPROD, P.REFFORN, P.MARCA, E.ESTOQUE ), são únicas, fica :

SELECTP.CODPROD, P.DESCRPROD, P.REFFORN, P.MARCA, E.ESTOQUE, MAX(V.VLRVENDA) as MaxValor
FROM TGFPRO P, TGFEST E, TGFEXC V
WHERE P.CODPROD = E.CODPROD AND P.CODPROD = V.CODPROD AND MARCA = 'GERAL'
GROUP BY P.CODPROD, P.DESCRPROD, P.REFFORN, P.MARCA, E.ESTOQUE

Se as demais colunas não forem únicas, teremos repetições no resultado da query.

Nesse caso, retire as colunas desnecessárias ( do select e do group by ).
Responder

08/03/2016

Carlos Felix

Ok, Marcos. Problema resolvido. Muito obrigado!!!
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