Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, tenho aqui um select que faz a busca de alguns bens com base na sua localização atual. Estou precisando, para aqueles que tenham localização anterior, que seja mostrada sua localização anterior, enquanto os outros, que não tiverem localização anterior, mostram sua localização atual.
A maneira mais fácil que encontrei de fazer isso (só não sei ainda como fazer :P) é utilizando o select que já tenho, depois, para cada elemento retornado por esse select verificar se ele possui uma localização anterior (isso eu faço utilizando um outro select, pesquisando em outra tabela). Se ele tiver localização anterior, passo seus dados, com o campo localização alterado para a minha tabela temporária, caso não tenha, passo seus dados intactos para a tabela temporária. Só para deixar mais claro, isso eu vou fazer para gerar um relatório no Delphi.
Até aqui pode ter ficado meio confuso, então vou tentar exemplificar um pouco:
Digamos que o select que já tenho gerou o seguinte conjunto de dados:
Código Localização
1 1
2 1
3 1
4 2
5 2
6 2
7 3
8 3
9 3
e para a pesquisa que farei, item a item, para saber a localização anterior, ele gera o seguinte:
Código Localização
1 Não tem
2 3
3 1
4 2
5 Não tem
6 Não tem
7 1
8 1
9 2
Primeiro de tudo: Como faço para a cada pesquisa dessas ir incluindo os dados na nova tabela temporária? (Lembrem-se que é no Delphi que vou fazer isso, então, talvez fique mais simples, pois vou fazer uma varredura do primeiro ao último registro retornado pelo meu primeiro select, então, pelo que estou imaginando, a cada registro faço a pesquisa para verificar a localização anterior e, após isso, jogo na tabela temporária).
Por fim, a tabela temporária ficaria da seguinte forma:
Código Localização
1 1
2 3
3 1
4 2
5 2
6 2
7 1
8 1
9 2
Agora, como o relatório que vou gerar é ordenado por sua localização, precisaria fazer um order by para retornar a tabela temporária da seguinte forma:
Código Localização
1 1
3 1
7 1
8 1
4 2
5 2
6 2
9 2
2 3
E então, alguém pra me ajudar?
Carregando comentários...