Fabrízio "Mas o que vc quer não é o intervalo linha a linha??? Pq se for linha a linha da tua tabela vc nao considerou o intervalo entre 10:11:00 e 10:15:00 que é de 4 minutos...
Na verdade acho que expliquei mal, você ta certo deveria considerar sim. A idéia é somar os minutos independente de quantas linhas tiver. Pelo pouco que entendi desse modelo vc tem uma linha para inicio e outra para fim... é isso??? Vc não tem algum campo que indica isso??? Um tipo ou um auto-relacionamento??? Pq caso nao tenha e necessite fazer isso "sequencialmente" creio que seja mais indicado escrever uma pequena PL para resolver." Eu tenho ainda mais uma coluna que criei (acao, varchar) onde ficam dois valores: INICIO ou FIM A idéia é: quando o cara inicia uma prova, insere nesta tabela a data e hora do inicio. Ele tem a opção de pausar a prova e voltar quando quiser, amanhã ou depois entendem. Quando ele da a pausa, no caso o FIM, daí salva de novo mais uma linha com a data e hora de saída. E assim por diante, entrada e saída. Com pl eu não sei como se faria isso, eu apenas queria somar os minutos que o cara levou pra completar a prova. -------------------------------------------- Osvaldo mais uma vez desculpa por esquecer do assunto, esqueci mesmo de alterar. foi mal. Como você determina que 10:11:00 é um término, e não um início de intervalo? Apenas pela posição relativa? Eu tenho uma coluna (acao, varchar) onde ficam dois valores: INICIO ou FIM. é ali que sei quando o usuario entrou ou saiu. com o uso de Window eu ainda não sei sobre isso, vou dar uma pesquisada. -------------------------------------------- Victor "Remodele a sua tabela" Eu até pensei em usar como você disse, só que a idéia seria não usar update na tabela e sim somente inserts. No próprio titulo da mensagem diz: "Somar horas tendo somente uma coluna". Mas em último caso posso mudar a idéia e quem sabe funcione né!!! Pra mim não teria problema em fazer como você disse, só que eu teria que fazer verificações na aplicação. (fazer um select pra verificar se o registro já existe e então atualizar a coluna com data de saída). É uma idéia também... Em 2 de setembro de 2010 12:00, <[email protected] > escreveu: > Send pgbr-geral mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of pgbr-geral digest..." > > > Tópicos de Hoje: > > 1. Re: Re Re: Somar horas tendo somente uma coluna > (Fabrízio de Royes Mello) > 2. Re: Digest pgbr-geral, volume 21, assunto 4 (Osvaldo Kussama) > 3. Re: Re Re: Somar horas tendo somente uma coluna (Victor Hugo) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 2 Sep 2010 10:37:42 -0300 > From: Fabrízio de Royes Mello <[email protected]> > Subject: Re: [pgbr-geral] Re Re: Somar horas tendo somente uma coluna > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: > <[email protected]> > Content-Type: text/plain; charset="iso-8859-1" > > Em 2 de setembro de 2010 10:24, Beto Lima <[email protected]> escreveu: > > > Em 2 de setembro de 2010 10:22, Beto Lima <[email protected]> escreveu: > > > >> Fabrizio e Victor > >> Seria quase isso. > >> Veja bem: > >> > >> > >> select > >> data_sessao::date, > >> max(data_sessao) - min(data_sessao) > >> from sessao > >> where id_usuario = 2 > >> group by 1; > >> > >> os valores são esses: > >> > >> 2010-09-02 10:01:00 > >> 2010-09-02 10:11:00 > >> 2010-09-02 10:15:00 > >> 2010-09-02 10:20:00 > >> > >> essa consulta me tráz assim: > >> 2010-09-02 00:19:00 > >> Ele está pegando o máximo (10:20:00) e diminuindo do mínimo (10:01:00). > >> Eu queria que o resultado fosse: 00:15:00 > >> 10:01:00 até 10:11:00 daria 10 minutos e 10:15:00 até 10:20:00 daria 5 > >> minutos. > >> Somando daria 15 minutos. > >> > >> > >> > Mas o que vc quer não é o intervalo linha a linha??? Pq se for linha a > linha > da tua tabela vc nao considerou o intervalo entre 10:11:00 e 10:15:00 que é > de 4 minutos... > > Pelo pouco que entendi desse modelo vc tem uma linha para inicio e outra > para fim... é isso??? Vc não tem algum campo que indica isso??? Um tipo ou > um auto-relacionamento??? Pq caso nao tenha e necessite fazer isso > "sequencialmente" creio que seja mais indicado escrever uma pequena PL para > resolver. > > -- > Fabrízio de Royes Mello > >> Blog sobre TI: http://fabriziomello.blogspot.com > >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: > http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100902/33d2106f/attachment-0001.htm > > ------------------------------ > > Message: 2 > Date: Thu, 2 Sep 2010 11:31:15 -0300 > From: Osvaldo Kussama <[email protected]> > Subject: Re: [pgbr-geral] Digest pgbr-geral, volume 21, assunto 4 > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: > <[email protected]> > Content-Type: text/plain; charset=ISO-8859-1 > > Em 2 de setembro de 2010 10:22, Beto Lima <[email protected]> escreveu: > > Fabrizio e Victor > > Seria quase isso. > > Veja bem: > > > > select > > data_sessao::date, > > max(data_sessao) - min(data_sessao) > > from sessao > > where id_usuario = 2 > > group by 1; > > > > os valores são esses: > > > > 2010-09-02 10:01:00 > > 2010-09-02 10:11:00 > > 2010-09-02 10:15:00 > > 2010-09-02 10:20:00 > > > > essa consulta me tráz assim: > > 2010-09-02 00:19:00 > > Ele está pegando o máximo (10:20:00) e diminuindo do mínimo (10:01:00). > > Eu queria que o resultado fosse: 00:15:00 > > 10:01:00 até 10:11:00 daria 10 minutos e 10:15:00 até 10:20:00 daria 5 > > minutos. > > Somando daria 15 minutos. > > > > > Reforço o pedido de que não responda a mensagens digest. Você bagunça > o histórico da lista. > > Como você determina que 10:11:00 é um término, e não um início de > intervalo? > Apenas pela posição relativa? > > Creio que com o uso de Window Functions você possa conseguir o > resultado desejado. > http://www.postgresql.org/docs/current/interactive/tutorial-window.html > > Osvaldo > > > ------------------------------ > > Message: 3 > Date: Thu, 2 Sep 2010 11:56:17 -0300 > From: Victor Hugo <[email protected]> > Subject: Re: [pgbr-geral] Re Re: Somar horas tendo somente uma coluna > To: Comunidade PostgreSQL Brasileira > <[email protected]> > Message-ID: > <[email protected]> > Content-Type: text/plain; charset=ISO-8859-1 > > Concordo plenamente com o Fabrizio, > > Remodele a sua tabela desta forma.. > > id, > data_sessao_ini, > data_sesssao_fim, > id_usuario > > Aí daria para fazer isso, tendo como base um horário de inicio e fim. > > []´s > vh > > > > Em 2 de setembro de 2010 10:37, Fabrízio de Royes Mello > <[email protected]> escreveu: > > > > > > Em 2 de setembro de 2010 10:24, Beto Lima <[email protected]> escreveu: > >> > >> Em 2 de setembro de 2010 10:22, Beto Lima <[email protected]> > escreveu: > >>> > >>> Fabrizio e Victor > >>> Seria quase isso. > >>> Veja bem: > >>> > >>> select > >>> data_sessao::date, > >>> max(data_sessao) - min(data_sessao) > >>> from sessao > >>> where id_usuario = 2 > >>> group by 1; > >>> > >>> os valores são esses: > >>> > >>> 2010-09-02 10:01:00 > >>> 2010-09-02 10:11:00 > >>> 2010-09-02 10:15:00 > >>> 2010-09-02 10:20:00 > >>> > >>> essa consulta me tráz assim: > >>> 2010-09-02 00:19:00 > >>> Ele está pegando o máximo (10:20:00) e diminuindo do mínimo (10:01:00). > >>> Eu queria que o resultado fosse: 00:15:00 > >>> 10:01:00 até 10:11:00 daria 10 minutos e 10:15:00 até 10:20:00 daria 5 > >>> minutos. > >>> Somando daria 15 minutos. > >>> > >>> > > > > Mas o que vc quer não é o intervalo linha a linha??? Pq se for linha a > linha > > da tua tabela vc nao considerou o intervalo entre 10:11:00 e 10:15:00 que > é > > de 4 minutos... > > Pelo pouco que entendi desse modelo vc tem uma linha para inicio e outra > > para fim... é isso??? Vc não tem algum campo que indica isso??? Um tipo > ou > > um auto-relacionamento??? Pq caso nao tenha e necessite fazer isso > > "sequencialmente" creio que seja mais indicado escrever uma pequena PL > para > > resolver. > > -- > > Fabrízio de Royes Mello > >>> Blog sobre TI: http://fabriziomello.blogspot.com > >>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello > > > > _______________________________________________ > > pgbr-geral mailing list > > [email protected] > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > > > > > > -- > []´s > Victor Hugo > > > ------------------------------ > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > Fim da Digest pgbr-geral, volume 21, assunto 8 > ********************************************** > -- Att. Beto Lima
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
