Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

patriciatoscano

Lógica para exibição de grafico por períodos de hora, dia e etc...

Recommended Posts

Olá galera,O meu dilema é o seguinte, estou a 10 dias tentado solucionar isso e não estou conseguindo estou completamente perdida, sem noção de como fazer, sem a lógica, fico horas e mais horas matutando raciocinando, mais não consigo achar uma lógica de como fazer isso.É o seguinte, tenho um formulário de pesquisa que tem os seguintes campos:Cliente - id do cliente num campo hiddenlojas - combobox com as lojas deste clienteentrada - combobox com as entradas da loja selecionada deste clientedatainicial - data inicial que irá pesquisarhorainicial - hora inicial quedatafinal - data finalhorafinal - hora finalexibicaografico - combobox de como será exibido o grafico, opções: 30min, hora, dia, mes, ano.Tenho uma tabela onde será gravados os dados da quatidade de pessoas que entraram na loja com o horario de 15 em 15 minutos no mínimo(ex: 10:00, 10:15, 10:30, 10:45, 11:00..., ex: 10 pessoas entraram 10:00, 30 entraram entre 10:00 e 10:15, 8 entraram entre 10:15 e 10:30...).Nesta tabela tem tambems todos estes campos acima citado no formulario. E os campos data e hora, são campos separados mesmo.Consegui fazer a instrução sql para buscar todo acima com o intervalo usando o BETWEEN e etc...Porém a exibição do grafico por 30min, por hora, por dia, por mes e por ano, sinceramente não como fazer, não sei se devo fazer isso na instrução sql também, e se for isso mesmo não sei como fazer.Ou se faço dentro do loop que faço para mover entre os registros, depois do select sql.E se for essa não sei exatamente como posso fazer.Estou precisando disso com muita urgencia, por favor me ajudem, qualquer sugestão informação, tutorial , dica, código, exemplo e etc... será muito válido e de muita ajuda.Aguardo uma ajuda de todos.Um Abraço a todo e grata desde já,Patricia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera,O meu dilema é o seguinte, estou a 10 dias tentado solucionar isso e não estou conseguindo estou completamente perdida, sem noção de como fazer, sem a lógica, fico horas e mais horas matutando raciocinando, mais não consigo achar uma lógica de como fazer isso.É o seguinte, tenho um formulário de pesquisa que tem os seguintes campos:Cliente - id do cliente num campo hiddenlojas - combobox com as lojas deste clienteentrada - combobox com as entradas da loja selecionada deste clientedatainicial - data inicial que irá pesquisarhorainicial - hora inicial quedatafinal - data finalhorafinal - hora finalexibicaografico - combobox de como será exibido o grafico, opções: 30min, hora, dia, mes, ano.Tenho uma tabela onde será gravados os dados da quatidade de pessoas que entraram na loja com o horario de 15 em 15 minutos no mínimo(ex: 10:00, 10:15, 10:30, 10:45, 11:00..., ex: 10 pessoas entraram 10:00, 30 entraram entre 10:00 e 10:15, 8 entraram entre 10:15 e 10:30...).Nesta tabela tem tambems todos estes campos acima citado no formulario. E os campos data e hora, são campos separados mesmo.Consegui fazer a instrução sql para buscar todo acima com o intervalo usando o BETWEEN e etc...Porém a exibição do grafico por 30min, por hora, por dia, por mes e por ano, sinceramente não como fazer, não sei se devo fazer isso na instrução sql também, e se for isso mesmo não sei como fazer.Ou se faço dentro do loop que faço para mover entre os registros, depois do select sql.E se for essa não sei exatamente como posso fazer.Estou precisando disso com muita urgencia, por favor me ajudem, qualquer sugestão informação, tutorial , dica, código, exemplo e etc... será muito válido e de muita ajuda.Aguardo uma ajuda de todos.Um Abraço a todo e grata desde já,Patricia

Doce patriciatoscano,Creio que o pessoal do forum poderá sugeir alguma forma de resolver seus problemas.Só para facilitar o entendimento de seu ambiente responsda as seguinges perguntas:Qual o banco de dados q você esta utilizando? Access, MySQl, Postgree ou outro?você poderá alterar a modelagem dos dados atuais? Ou deverá simplesmente adaptar o seu gráfico a um base dados existente?A sua tabela têm somente os campos q você citou ou outros? Poste a estruturada de suas tabelas!Poste o SQL que retorna os dados!Acho que dá pra mceçar!E não se alfija qto maior o caminho! Maior será a meta alcnçada!!t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

O banco é access inicialmente,porem depois migrarei para o sql server, sim tem somente estas colunas acima.Os registros já são gravados por padrão de 15 em 15 minutos entendeu, não estou fazendo filtragem nenhum para ele exibirem assim.de qualquer forma ai vai mais informações:SELECT * FROM passagens WHERE idcliente = '1' AND idloja = '1' AND identrada = '1' AND (data BETWEEN #1/1/2006# AND #29/9/2007#) AND (horario BETWEEN #12:00:00# AND #23:00:00#) ORDER BY id ASCAté ai tudo beleza, funciona que é uma beleza gera o grafico com todos os dados, porem tais os dados todos sem filtragem de exibição, exemplo:quantidade data horario10 9/11/2006 21:00:0014 9/11/2006 21:15:0032 9/11/2006 21:30:0025 9/11/2006 21:45:0027 9/11/2006 22:00:0040 15/2/2007 14:00:0050 15/2/2007 14:15:00Quero saber como eu posso fazer essa filtragem para exibir esses dados retornados desta consulta, porem quando for de 30 em 30 minuots, somar a quantidade e exibir o grafico que estão gravados nos intervalos de 30 em 30 minutos, ex:quantidade data horario10 9/11/2006 21:00:0046 9/11/2006 21:30:0052 9/11/2006 22:00:00Neste caso vale o mesmo para exibição por dia hora, ou seja de hora em hora 21:00, 22:00, 23:00...., por mês janeiro (1), fevereiro (2), março (3)..., e por ano 2005, 2006, 2007...Por favor aguardo uma ajuda estou entrando em desespero, sem saber resolver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezada patriciatoscano,

 

 

Fiz um teste rápido usando o CASE:

 

create table #TMP (quantidade int ,data datetime, horario varchar(15))insert into #TMP (quantidade ,data, horario) values (10, '9/11/2006','21:00:00')insert into #TMP (quantidade ,data, horario) values (14, '9/11/2006','21:15:00')insert into #TMP (quantidade ,data, horario) values (32, '9/11/2006','21:30:00')insert into #TMP (quantidade ,data, horario) values (25, '9/11/2006','21:45:00')insert into #TMP (quantidade ,data, horario) values (27, '9/11/2006','22:00:00')insert into #TMP (quantidade ,data, horario) values (40, '2007/02/15','14:00:00')insert into #TMP (quantidade ,data, horario) values (50, '2007/02/15','14:15:00')select  *,case	when horario >= '21:00' and horario <= '21:29' THEN '21:00'	when horario >= '21:30' and horario <= '21:59' THEN '21:30'	when horario >= '22:00' and horario <= '22:59' THEN '21:30'	else horarioend as faixa_horario from #tmpdrop table #tmp

 

você poderia criar um tabela temporária com CASE e depois efetuar a soma de acordo com a faixa_horario.

 

Achoi que ja da para pensar em algo.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.