Stored Procedure - 2 consultas complementares em uma, como?
Pessoal, quebrando a cabeça com isso há dois dias, mas não consigo resolver por isso peço a ajuda de vocês.
Preciso listar estabelecimento comerciais de acordo com a distância do ponto fornecido pelo usuário. Todo o cálculo é baseado em latitude e longitude utilizando STDistance do SQL-Server. Até aí tudo bem.
A stored procedure recebe os parametros latitude, longitude do usuário e raio (distancia em km até onde vai buscar estabelecimentos)
O problema é que, nesta listagem, os 3 primeiros da lista devem ser obrigatoriamente os 3 estabelecimentos mais próximos do usuário que possuem contrato ATIVO com a empresa, ordenados por distância, e em seguida, deve exibir todos os demais, também em ordem de distância, misturando contratos ATIVOS e INATIVOS, sem repetir os 3 que já foram exibidos acima.
Algo como (resumidamente só para entendimento)
SELECT TOP 3 estabelecimento FROM vw_Estabelecimentos WHERE contrato_ativo = 1 ORDER BY distancia
SELECT estabelecimento FROM vw_Estabelecimentos ORDER BY distancia (que não duplique com o resultado da 1ª query)
Porém tudo isso numa query só pra retornar apenas um recordset. Já tentei com UNION de tudo que é jeito mas não consegui :(
Como resolver isso? Não sei se a informação é suficiente...se for necessário posto aqui a query original que é bem mais complexa.
Agradeço qualquer ajuda.
Obg
Discussão (5)
Carregando comentários...