Resolvido:

case when lag(codcli, 1) over (order by codcli,dliberado)=codcli THEN dliberado - lag(dliberado, 1) over (order by codcli, dliberado) ELSE null END as dias

conta a frequencia que o cliente fez pedido, e quando muda de cliente (cliente anterior diferente) anula a contagem da diferença de datas.

Obrigado.


Em 28/07/2016 21:04, Vinícius Aquino do Vale escreveu:
Imagino que queira utilizar alguma função da windows functions (https://www.postgresql.org/docs/9.2/static/functions-window.html)-

Procure sobre ROWSBETWEENUNBOUNDEDPRECEDINGANDUNBOUNDEDFOLLOWING

Abs...

Em qui, 28 de jul de 2016 às 20:33, Forsell - Erlon <[email protected] <mailto:[email protected]>> escreveu:

    Boa noite,

    Eu já vi soluções de gente sugerindo procurar campo >= ou <=

    O fato é que no Crystal por exemplo existe a possibilidade de pegar o
    valor de um registro anterior mesmo ele sendo igual, se eu
    trabalhar com
    data por exemplo, e no proximo registro tiver a mesma data é ela que
    quero retornar

    ex:

    select previous(data) from pedidos  where codcliente = 1 order by
    data;

    gostaria que retornasse a data do pedido anterior desse cliente para
    comparar por exemplo quantos dias faz que ele fez o pedido antes do
    atual, existe uma função para isso sem o famoso "xaxo"?
    _______________________________________________
    pgbr-geral mailing list
    [email protected]
    <mailto:[email protected]>
    https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a