 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
grsoft Aprendiz

Registrado: Segunda-Feira, 10 de Abril de 2006 Mensagens: 107
|
Enviada: Qua Nov 28, 2018 9:06 am Assunto: Dúvida SQL (MYSQL) |
|
|
opa pessoal, bom dia, estou com uma dúvida em uma SQL:
Tenho uma SQL q me mostra os valores totais de venda por hora, só que ela só me retorna as horas das quais existem movimento, óbvio kkkkk, só que eu queria q me retornasse o valor 0 caso não haja movimento nesse horário, exemplo:
00:00h - R$ 0,00
01:00h - R$ 0,00
02:00h - R$ 15,00
03:00h - R$ 0,00
04:00h - R$ 105,00
e assim sucessivamente.
a sql q eu uso hj é essa:
select COUNT(COD), SUM(VALOR), TIME_FORMAT(CAST(DATAHORA as Time), '%H:00') as HORA
from movimento
WHERE (movimento.DATAHORACONCLUSAO BETWEEN '2018-11-26 00:00:00' AND '2018-11-26 23:59:59')
group by TIME_FORMAT(CAST(HORA as Time), '%H:00')
order by TIME_FORMAT(CAST(HORA as Time), '%H:00')
agradeço desde já a ajuda. |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Nov 28, 2018 10:03 am Assunto: |
|
|
Bom dia,
Não tenho experiência com o MySQL mas acho que uma alternativa seria criar uma tabela com os horários para poder fazer um Join com o resultado dessa query que você já tem. Ex:
Código: | select
*
from Horarios as h
left join
(
select COUNT(COD), SUM(VALOR), TIME_FORMAT(CAST(DATAHORA as Time), '%H:00') as HORA
from movimento
WHERE (movimento.DATAHORACONCLUSAO BETWEEN '2018-11-26 00:00:00' AND '2018-11-26 23:59:59')
group by TIME_FORMAT(CAST(HORA as Time), '%H:00')
order by TIME_FORMAT(CAST(HORA as Time), '%H:00')
) as m on m.Hora = h.Hora |
Espero que ajude
Editado pela última vez por imex em Ter Mar 21, 2023 3:30 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
grsoft Aprendiz

Registrado: Segunda-Feira, 10 de Abril de 2006 Mensagens: 107
|
Enviada: Qua Nov 28, 2018 12:31 pm Assunto: |
|
|
meu amigo, mais uma vez MUITO obrigado.
só fiz uma alteração criando uma tabela virtual com os horários, no final deu tudo certo....
imex escreveu: | Bom dia,
Não tenho experiência com o MySQL mas acho que uma alternativa seria criar uma tabela com os horários para poder fazer um Join com o resultado dessa query que você já tem. Ex:
Código: | select
*
from Horarios as h
left join
(
select COUNT(COD), SUM(VALOR), TIME_FORMAT(CAST(DATAHORA as Time), '%H:00') as HORA
from movimento
WHERE (movimento.DATAHORACONCLUSAO BETWEEN '2018-11-26 00:00:00' AND '2018-11-26 23:59:59')
group by TIME_FORMAT(CAST(HORA as Time), '%H:00')
order by TIME_FORMAT(CAST(HORA as Time), '%H:00')
) as m on m.Hora = h.Hora |
Espero que ajude
|
|
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|