Passaram-me um desafio, muito incomodado eu quebrei a cabeça até conseguir. O problema proposto exige conhecimento de SQL.
Temos uma relação (tabela) chamada conta_corrente, na qual temos 2 campos, codigo_da_conta_corrente e saldo.
Deve-se construir uma consulta em SQL que traga o codigo_da_conta_corrente de maior saldo da tabela conta_corrente, fácil certo? Errado… Devemos construir esta consulta sem o uso do max(), min() e order by do SQL.
Esta é a minha resposta:
select a.codigo_da_conta_corrente, a.saldo
from conta_corrente a, conta_corrente b where a.saldo <= b.saldo group by a.codigo_da_conta_corrente, a.saldo having count(a.saldo) = 1
Esta é a resposta elaborada pelo Anderson:
select a.codigo_da_conta_corrente from conta_corrente a
where
(select count(b.saldo) from conta_corrente b
where b.saldo > a.saldo) = 0
Esta é a resposta café com leite (ele usou Transact-SQL) do Rodrigo:
SET NOCOUNT ON DECLARE @valor NUMERIC(10,2) DECLARE @valor2 NUMERIC(10,2) DECLARE teste CURSOR FOR SELECT valor FROM sigfls OPEN teste FETCH NEXT FROM teste INTO @valor2 WHILE @@FETCH_STATUS = 0 BEGIN IF @valor > @valor2 SET @valor2 = @valor ELSE FETCH NEXT FROM teste INTO @valor END PRINT @valor2 CLOSE teste DEALLOCATE teste
Depois de fazer este desafio achei um similar com explicação muito interessante: Os 10 mais por categoria.
0 Respostas para “Como determinar o maior saldo sem max(), min() e order by”
Deixe uma Resposta