MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Consulta Cosseno

    avatar
    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 153
    Registrado : 06/09/2011

    Consulta Cosseno Empty Consulta Cosseno

    Mensagem  wmantovani em 19/2/2020, 19:51

    Boa tarde pessoal peguei um exemplo na net que estou querendo desenvolver, mas to travado e a tarde toda não consegui progredir,

    Peguei o exemplo deste site: http://www.phpit.com.br/artigos/como-procurar-locais-proximos-usando-sql.phpit

    montei a tabela do exemplo:

    CREATE TABLE `enderecos` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `nome` VARCHAR( 60 ) NOT NULL ,
    `endereco` VARCHAR( 80 ) NOT NULL ,
    `lat` FLOAT( 10, 6 ) NOT NULL ,
    `lng` FLOAT( 10, 6 ) NOT NULL
    ) ;

    os dados do exemplo:

    INSERT INTO `enderecos` (`id`, `nome`, `endereco`, `lat`, `lng`) VALUES
    (NULL, 'Shopping Iguatemi Porto Alegre', 'Av. João Wallig, 1800 - Passo da Areia, Porto Alegre - RS', '-30.027668', '-51.163269'),
    (NULL, 'Bourbon Shopping', 'Av. Assis Brasil, 164 - São João, Porto Alegre - RS', '-30.007913', '-51.184273'),
    (NULL, 'Praia De Belas Shopping', 'Av. Praia de Belas, 1181 - Praia de Belas, Porto Alegre - RS', '-30.049527', '-51.228753'),
    (NULL, 'Barra Shopping Sul', 'Av. Diário de Notícias, 300, Porto Alegre - RS', '-30.084494', '-51.245297'),
    (NULL, 'Shopping TOTAL', 'Av. Cristóvão Colombo, 545 - Floresta, Porto Alegre - RS', '-30.025511', '-51.212344')

    agora que vem o problema, montar a consulta no access, nao consigo montar:

    SELECT id,
    (6371 * acos(
    cos( radians(-30.053831) )
    * cos( radians( lat ) )
    * cos( radians( lng ) - radians(-51.191810) )
    + sin( radians(-30.053831) )
    * sin( radians( lat ) )
    )
    ) AS distancia
    FROM enderecos
    HAVING distancia < 25
    ORDER BY distancia ASC
    LIMIT 4;

    alguém pode me dar uma luz de como montar esta consulta por favor, ela deve retornar o seguinte resultado:

    id distancia
    3 3.5876619973975385
    5 3.7180529211314073
    1 4.001380483066799
    2 5.15708294670291



    obrigado

      Data/hora atual: 9/8/2020, 17:55