rapidinho com window function pode ser assim

(SELECT
CASE WHEN RECPAGO = 1 THEN 'PAGO' ELSE 'ABERTO' END,
COUNT(CHAVEPRIMARIA) OVER (PATITION BY RECPAGO)
FROM RECEBER
WHERE
    RECCLIENTE = 5444 AND
    EXTRACT(YEAR FROM RECDATAVENCIMENTO) = '2011'

)UNION ALL(

SELECT
'TOTAL',
COUNT(*)
FROM RECEBER
WHERE
    RECCLIENTE = 5444 AND
    EXTRACT(YEAR FROM RECDATAVENCIMENTO) = '2011')

2012/9/26 Osvaldo Kussama <[email protected]>

> Em 26/09/12, Paulo<[email protected]> escreveu:
> > Ola pessoal,
> >
> > Tenho a seguinte sentença:
> >
> > SELECT
> >
> >   count(*)
> >
> > FROM
> >
> >     receber
> >
> > WHERE
> >
> >     reccliente = 5444 and
> >
> >     extract(year from recdatavencimento) = '2011'
> >
> > GROUP BY
> >
> >   CASE
> >
> >    WHEN recpago = 1 then 'Pago'
> >
> >    WHEN recpago = 0 then 'Aberto'
> >
> >   END
> >
> >
> >
> > RETORNA O SEGUINTE REGISTROS:
> >
> > 14 pago
> >
> > 22 aberto
> >
> >
> >
> > Preciso na mesma sentença retornar o total dos registros:
> >
> > Ex:
> >
> > 14 pago
> >
> > 22 aberto
> >
> > 36 total
> >
> >
> >
> > Alguém tem alguma ideia ¿
> >
>
>
> Num formato um pouco diferente. Verifique se atende:
>
> SELECT  sum(CASE WHEN recpago = 1 then 1 ELSE 0 END) AS "Pago",
>                 sum(CASE WHEN recpago = 0 then 1 ELSE 0 END) AS "Aberto",
>                 count(*) AS "Total"
> FROM receber
> WHERE reccliente = 5444 and extract(year from recdatavencimento) = 2011;
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



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

Responder a