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

Responder a