

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Calculo distância entre 2 Clientes levando em consideração data de inicio visita.
Bom dia Pessoal,
Estou com uma situação em que preciso calcular a distância percorrida e a distância planejada entre Clientes, levando em consideração a data de início da visita, por essa data eu sei a ordem em que o Vendedor efetuou os atendimentos, efetuei alguns teste mas não estou conseguindo passar os dados de latitude e longitude do próximo cliente visitado, segue abaixo os dados:
Select que estou fazendo no Banco para subir a carga:
SELECT R.[usuario]
,'CNPJ' CNPJ
,'CLIENTE' CLIENTE
,R.[dta_rota]
,DB.[dat_final]
,DB.[dat_inicio]
,DB.[vlr_longitude]
,DB.[vlr_latitude]
,Ceiling(Round((6371*ACOS(COS(PI()*(90(DB.[vlr_latitude]))/180)*COS((90(latitude proximo cliente visitado ?)*PI()/180)+
SIN((90(DB.[vlr_latitude]))*PI()/180)*
SIN((90(latitude proximo cliente visitado ?))*PI()/180)*COS(((DB.[vlr_longitude])(longitude proximo cliente visitado?))*PI()/180))) /10,2)) as Distância_planejada
FROM [dbo].[ROTA] R
inner join [dbo].[DB] DB
on DB.[cod_cliente] = R.[cod_cliente]
where R.[usuario] = '62152'
and substring(R.[dta_rota],1,10) between substring(DB.[dat_inicio],1,10) and substring(DB.[dat_final],1,10)
and R.[dta_rota] = '2014-12-15 '
order by DB.[dat_inicio] asc
Para o meu teste eu passei os dados manualmente, peguei a latitude e longitude do primeiro cliente visitado e do segundo assim tive o resultado que precisava, mas como vocês vão ver a abaixo, fica a mesma distância para todos, preciso de ajudar para passar os dados dinamicamente conforme a data de inicio, segue o resultado:
CLIENTE | dta_rota | dat_final | dat_inicio | vlr_longitude | vlr_latitude | Distância_planejada |
CLIENTE | 2014-12-15 | 2014-12-15 08:43:22 | 2014-12-15 08:43:22 | -46,6023 | -23,4557 | 0 - Iniciou o dia aqui |
CLIENTE | 2014-12-15 | 2014-12-15 09:49:44 | 2014-12-15 09:49:44 | -46,6461 | -23,4945 | 930 - cliente 2 - cliente 1 |
CLIENTE | 2014-12-15 | 2014-12-15 10:47:46 | 2014-12-15 10:47:46 | -46,629 | -23,5101 | 750 - cliente 3 -cliente 2 |
CLIENTE | 2014-12-15 | 2014-12-15 11:17:31 | 2014-12-15 11:17:31 | -46,6584 | -23,556 | 1200 - cliente 4 - cliente 3 |
CLIENTE | 2014-12-15 | 2014-12-15 15:21:22 | 2014-12-15 15:21:22 | -46,6546 | -23,5433 | 50 - cliente 5 - cliente 4 |
Espero que tenha ficado claro a minha dúvida.
Muito Obrigado a todos.
Accepted Solutions


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Márcio, disponibilize um exemplo de seus dados para eu tentar umas coisas


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vou deixar mais um pouco aberto esta pergunta, pode ser que alguém do grupo já tenha passado por essa situação.
Obrigado a todos.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Márcio, disponibilize um exemplo de seus dados para eu tentar umas coisas


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Muito Obrigado pelo apoio Yuri, segue anexo os dados:

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mais uma vez eu!!! Foi dar uma revisada ver se tenho mais algum em aberto, hoje não deixo mais nada, já aprendi, kkkk, muito obrigado Clever e desculpas mais uma vez!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Relax
