"SELECT l1 FROM Leilao l1 WHERE l1.lance = (SELECT MIN(l2.lance) FROM Leilao l2)"
Isso, por que, SELECT MIN (qualquer coisa), trará o menor dentre todos os qualquer coisa que você possuir.
Agora, se fizer SELECT [color=red]MAX(alguma coisa)[/color] você terá o maior dentre todos os alguma coisa.
J
juliano_jms
drsmachado, obrigado pelo retorno.
Entendi isso que você comentou. A minha dúvida é como dar um SELECT trazendo o lance minimo pelas ofertas (idOferta) que eu tenho.
drsmachado
Essa query aqui
"SELECT l1 FROM Leilao l1 WHERE l1.lance = (SELECT MIN(l2.lance) FROM Leilao l2)"
traz tudo o que existe em leilao, desde que o valor do lance seja o menor de todos os lances.
Creio que haja uma tabela onde você determine o lance mínimo do leilão, correto? Qual é esta tabela? Quais são suas colunas?
J
juliano_jms
Acho que ainda não fui claro.
Conforme a imagem que eu encaminhei, tenho na minha tb_leilao os lances e a que oferta o lance se refere (idOferta).
O que eu quero apresentar com o SELECT é:
idOferta = 1 / lance MIN = (menor lance dado pelos usuarios)
idOferta = 2 / lance MIN = (menor lance dado pelos usuarios)
idOferta = 3 / lance MIN = (menor lance dado pelos usuarios)
Entendeu? não quero o lance minimo entre todas as ofertas.
Preciso de auxílio para alterar esse SELECT que fiz.
Obrigado.
drsmachado
SELECT MIN(l2.lance) FROM Leilao l2
Isso traz apenas o menor lance de todos.
Você precisa de uma cláusula where que filtre qual menor lance você procura. Como descreveu, deseja o menor lance de cada usuário, logo, o filtro deve ser feito pela coluna que se refere ao usuário, certo?
A
ADEMILTON
select idoferta
, min(lance)
from leilao
group by idoferta
J
juliano_jms
ADEMILTON, boa tarde.
É esse resultado mesmo que eu desejo… Mas a dificuldade é fazer com a Query JPA… podes dar uma força?
Valeu.
A
ADEMILTON
Sorry, bacana… não manjo disso
drsmachado
ADEMILTON:
O que eu quero apresentar com o SELECT é:
idOferta = 1 / lance MIN = (menor lance dado pelos usuarios)
idOferta = 2 / lance MIN = (menor lance dado pelos usuarios)
idOferta = 3 / lance MIN = (menor lance dado pelos usuarios)
select idoferta
, min(lance)
from leilao
group by idoferta
Se por JPA você quer dizer JPAQL, deve ser algo assim
SELECT l1.idoferta, min(l1.lance) FROM Leilao l1 GROUP BY l1.idoferta
J
juliano_jms
Pessoal, boa noite.
Consegui da seguinte maneira:
SELECT l from Leilao l WHERE l.lance = (SELECT MIN(v.lance) FROM Leilao v WHERE v.oferta.idOferta = l.oferta.idOferta)