Sql para cotacao de preços..
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..
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
Curtidas 0
Respostas
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
, produtos.codigo
, produtos.codigo_fornecedor
from produtos
group by produtos.codigo
, produtos.codigo_fornecedor
, produtos.valor_custo
GOSTEI 0
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?
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
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+
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
15/06/2006
afarias...
Quando eu crescer eu quero ser igual a você DHASUIOHDAISUDH
Quando eu crescer eu quero ser igual a você DHASUIOHDAISUDH
GOSTEI 0
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?
Alguem pdoe me dar uma ideia inicial de como criar uma SP que faz esse cálculo?
GOSTEI 0
Afarias
15/06/2006
E o q exatamente vc queria??
T+
T+
GOSTEI 0
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?
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
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+
Vc poderia dizer onde o resultado do SQL diverge do q vc espera?
T+
GOSTEI 0
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
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