Sql para cotacao de preços..

Firebird

15/06/2006

Tenho uma tabela cotacao com os campos.
CODPROD
CODFORNEC
PRECO..

preciso de uma SQL, que retorne o menor preço de cada Produto e o respectivo fornecedor...

Tentei usar o Min(Preco), com group By CODPROD, mas ele nao retorna o Codigo do fornecedor... Se eu colocar CODFORNECC no group by, ele vai mostrar o mesmo produto varias vezes..

Como posso fazer isto mais rapidamente..


Sistemp

Sistemp

Curtidas 0

Respostas

Jonas_giron

Jonas_giron

15/06/2006

select distinct (min(produtos.valor_custo))
, produtos.codigo
, produtos.codigo_fornecedor
from produtos
group by produtos.codigo
, produtos.codigo_fornecedor
, produtos.valor_custo


GOSTEI 0
Spleen

Spleen

15/06/2006

To com o mesmo problema que ele :/
e com certeza esse código aqui em cima ta errado..
Alguem pode dar um help?
se vc usar o MIN não pode colocar o fornecedor no GROUP
então como eu teria que fazer pra pegar o fornecedor relativo ao valor minimo?


GOSTEI 0
Afarias

Afarias

15/06/2006

Uma forma:


SELECT * FORM nome_tabela A
WHERE A.preco=(SELECT MIN(preco) FROM nome_tabela
WHERE codprod=A.codprod);


Neste caso, + de 1 fornecedor com preço mínimo igual para um mesmo produto poderão ser listados.

Esta solução não se preocupa com performance. É possível construir um procedimento com uma melhor performance, caso necessário.


T+


GOSTEI 0
Spleen

Spleen

15/06/2006

afarias...
Quando eu crescer eu quero ser igual a você DHASUIOHDAISUDH


GOSTEI 0
Spleen

Spleen

15/06/2006

Mas acabou que esse código não me serviu exatamente do jeito que eu queria..
Alguem pdoe me dar uma ideia inicial de como criar uma SP que faz esse cálculo?


GOSTEI 0
Afarias

Afarias

15/06/2006

E o q exatamente vc queria??


T+


GOSTEI 0
Spleen

Spleen

15/06/2006

é um cadastro de cotação igual o cara postou lá em cima...
Eu seleciono uma lista de produtos e a quantidade que eu quero de cada um deles..
Então eu mando essa lista pra determinados fornecedores e eles me retornam os preço..
Então eu passo pro sistema o preço que cada fornecedor me deu de cada produto..
O que eu quero exatamente é gerar um relatório com os menores preços de cada produto, e informa qual o fornecedor referente ao preço.

deu par entender?


GOSTEI 0
Afarias

Afarias

15/06/2006

Não sei se deu pra entender pq meu entendimento é q o SQL q passei retorna exatamente o q vc descreve.

Vc poderia dizer onde o resultado do SQL diverge do q vc espera?


T+


GOSTEI 0
Crash

Crash

15/06/2006

Não sei se deu pra entender pq meu entendimento é q o SQL q passei retorna exatamente o q vc descreve. Vc poderia dizer onde o resultado do SQL diverge do q vc espera? T+


Eu acho que foi você quem entendeu errado... essa query ai não vai sim retornar o menor valor, porém, ele quer que retorne o menor valor para cada fornecedor.

Nesse caso deve-se fazer um processamento das informações. Usando procedure do Firebird ou no delphi.

t+


GOSTEI 0
Afarias

Afarias

15/06/2006

e quer que retorne o menor valor para cada fornecedor.


Isso é o q vc está dizendo. Já o q ele disse foi:


´reciso de uma SQL, que retorne o menor preço de cada Produto e o respectivo fornecedor... ´

que é bem diferente.


T+


GOSTEI 0
POSTAR