ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Ajudinha na instrução Sql

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
digitom
Novato
Novato


Registrado: Quinta-Feira, 30 de Junho de 2005
Mensagens: 54

MensagemEnviada: Qui Jul 19, 2018 7:41 pm    Assunto: Ajudinha na instrução Sql Responder com Citação

Gente ****AJUDA****

Vamos ao problema:

Tenho um bloco viagens, onde é registrado o tempo de cada ponto.

Preciso de contar quantas viagens foram realizadas, porém existe algumas regras.

Cada bloco e contado como uma viagem se o tempo do bloco for maior que 5 minutos.

Se o tempo total do bloco for menor que 5:00minutos é porque não foi realizado a viagem.


Minha tabela é mais ou menos assim:
Código:

|viagem_id|carro|data      |linha|pontos   |inicio**|**fim***|tempo***|bloco|
|        1|74039|2018-05-02|4148 |PT1 - PT2|11:29:28|11:29:38|00:00:10|  648|
|        2|74039|2018-05-02|4148 |PT2 - PT1|11:37:40|12:17:30|00:39:50|  648|
|        3|74039|2018-05-02|4148 |PT1 - PT2|12:18:14|13:02:12|00:43:58|  648|
|        1|80021|2018-05-02|4148 |PT1 - PT2|17:02:48|17:03:00|00:00:12|  792|
|        2|80021|2018-05-02|4148 |PT2 - PT1|17:04:18|17:39:18|00:35:00|  792|
|        3|80021|2018-05-02|4148 |PT1 - PT2|17:40:02|18:24:40|00:44:38|  792|
|        4|80021|2018-05-02|4148 |PT2 - PT2|18:25:56|18:25:56|00:00:00|  792|
|        1|80021|2018-05-02|4148 |PT1 - PT2|21:25:56|21:26:56|00:01:00|  979|


Neste exemplo eu teria 2 viagens.

1 no bloco 792 e outra do bloco 648 não será registrado o bloco 979

Estou tentando assim:
Citação:

select Count(Case when (select DISTINCT v2.tempo from meia_viagem v2
WHERE v2.bloco = v.bloco and v2.tempo > '00:05:00' order by v2.tempo desc limit 1) > '00:05:00' Then 1 Else 0 End) totalViagens
from meia_viagem v
WHERE v.data = '2018.05.02' and v.linha = 4148


Porém me retorna um total de 7 Viagens.

Deu um branco

Socorro. Embarassed
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Jul 23, 2018 10:23 am    Assunto: Responder com Citação

Bom dia,

Experimente fazer uns testes dessa forma:

Código:
select Count(DISTINCT bloco) totalViagens
from meia_viagem
WHERE data = '2018.05.02' and linha = 4148 and tempo > '00:05:00'


Espero que ajude


Editado pela última vez por imex em Ter Out 03, 2023 3:12 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
digitom
Novato
Novato


Registrado: Quinta-Feira, 30 de Junho de 2005
Mensagens: 54

MensagemEnviada: Seg Jul 23, 2018 11:23 am    Assunto: Responder com Citação

é isso mesmo.

Deu certo. Laughing
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB