Fórum Sub-Consulta e Group By #56185
13/06/2006
0
No IB o sql abaixo roda perfeitamente, trazendo os dados certos. Já no FB, ocorre o erro
de agrupamento, considerando que a sub-consulta deve estar na clásula ´group by´.
select tabela1.campo1, sum(tabela1.campo2),
select max(tabela2.campo3) from tabela2 where tabela2.campo1=tabela1.campo1)
from tabela1
group by tabela1.campo1
Já tentei de várias formas, mas não obtive êxito. Pra não usar SP devo separar a subconsulta
do restante e executá-la para cada linha retornada do primeiro select?
Alguém tem a solução para isso?
Agradeco.
Drf
Curtir tópico
+ 0Posts
16/06/2006
Emerson Nascimento
select tabela1.campo1, sum(tabela1.campo2), (select max(tabela2.campo3) from tabela2 where tabela2.campo1=tabela1.campo1) Maior from tabela1 group by tabela1.campo1
Gostei + 0
16/06/2006
Drf
Obrigado pela ajuda. Vou continuar a fazer alguns testes.
Gostei + 0
18/06/2006
Orpolonio
Para usa-las popule a tabela com 1 ou 2 milhões de registros e veja o tempo gasto, se testar com uma tabela pequena n terá como ver o desempenho.
Cito sempre isso pois, o MIN,MAX,SUBSELECTS devem ser susbtituidos por procedures sim, a cada MIN/MAX o servidor varre toda a tabela e o consumo de memória para isso pode levar seu sistema a uma lentidão n aceitavel...mesmo em uma tabela de UFs(Estados) com no maximo 26 registros multiplique estes por 500.000, vc teria 13.000.000 de registros, teria a noção extada do que o MIN/MAX faz.
Para todos um pequeno palpite, sempre povoe a tabela com milhões de registros para testar os selects, se ficar aceitável assim com menos seu sistema ´voará´
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)