Beto,

Sobre esse campo acao que vc mencionou sobre a tal tabela, acho que
não seria "elegante" da forma que descreveu tendo inicio e fim, seria
melhor criar uma tabela com esses 2 valores (INICIO e FIM).

TABELA acao
   id_acao serial,
   descr_acao varchar2(20)

TABELA sessao
 id_sessao serial,
 data_sessao_ini,
 data_sesssao_fim,
 id_usuario,
 id_acao integer

Aí é contigo...

[]´s
vh




Em 2 de setembro de 2010 20:26, Beto Lima <betol...@gmail.com> escreveu:
> 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,
> <pgbr-geral-requ...@listas.postgresql.org.br> escreveu:
>>
>> Send pgbr-geral mailing list submissions to
>>        pgbr-ge...@listas.postgresql.org.br
>>
>> 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
>>        pgbr-geral-requ...@listas.postgresql.org.br
>>
>> You can reach the person managing the list at
>>        pgbr-geral-ow...@listas.postgresql.org.br
>>
>> 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 <fabriziome...@gmail.com>
>> Subject: Re: [pgbr-geral] Re Re: Somar horas tendo somente uma coluna
>> To: Comunidade PostgreSQL Brasileira
>>        <pgbr-geral@listas.postgresql.org.br>
>> Message-ID:
>>        <aanlktimfrvh4wrwi2+vjhjh70enw_kxc4dqezdq0=...@mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Em 2 de setembro de 2010 10:24, Beto Lima <betol...@gmail.com> escreveu:
>>
>> > Em 2 de setembro de 2010 10:22, Beto Lima <betol...@gmail.com> 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 <osvaldo.kuss...@gmail.com>
>> Subject: Re: [pgbr-geral] Digest pgbr-geral, volume 21, assunto 4
>> To: Comunidade PostgreSQL Brasileira
>>        <pgbr-geral@listas.postgresql.org.br>
>> Message-ID:
>>        <aanlktikmh3mahc4s5d+xnpqt-mjpf1b99oy5hwd4=...@mail.gmail.com>
>> Content-Type: text/plain; charset=ISO-8859-1
>>
>> Em 2 de setembro de 2010 10:22, Beto Lima <betol...@gmail.com> 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 <vh.cleme...@gmail.com>
>> Subject: Re: [pgbr-geral] Re Re: Somar horas tendo somente uma coluna
>> To: Comunidade PostgreSQL Brasileira
>>        <pgbr-geral@listas.postgresql.org.br>
>> Message-ID:
>>        <aanlktikjlkqjxvp49hm-s76odvt-5piee-bnjrb5y...@mail.gmail.com>
>> 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
>> <fabriziome...@gmail.com> escreveu:
>> >
>> >
>> > Em 2 de setembro de 2010 10:24, Beto Lima <betol...@gmail.com> escreveu:
>> >>
>> >> Em 2 de setembro de 2010 10:22, Beto Lima <betol...@gmail.com>
>> >> 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
>> > pgbr-geral@listas.postgresql.org.br
>> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>> >
>> >
>>
>>
>>
>> --
>> []´s
>> Victor Hugo
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> 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
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>



-- 
[]´s
Victor Hugo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a