>
>
> CREATE OR REPLACE FUNCTION pedidos_mes(dt_ini date, dt_fim date)
> RETURNS TABLE(month integer, year integer, count integer)
> LANGUAGE SQL
> AS $$
> SELECT mes, ano, sum(count)
> FROM (
> SELECT EXTRACT(MONTH FROM datapedido) AS mes, EXTRACT(YEAR FROM
> datapedido) AS ano, COUNT(id) AS count
> FROM pedidos
> WHERE datapedido BETWEEN dt_ini AND dt_fim
> GROUP BY ano, mes
> UNION ALL
> SELECT EXTRACT(MONTH FROM dt), EXTRACT(YEAR FROM dt), 0
> FROM generate_series(date_trunc('month', dt_ini), date_trunc('month',
> dt_fim), interval '1 month');
> ) t
> ORDER BY ano, mes
> GROUP BY ano, mes
> $$;
>
> Dessa forma você pega tudo disponível na tabela e usa o generate_series
> para gerar as datas (nesse caso primeiro dia de cada mês) que não estão lá.
>
>
Acredito ser isso. Vou testar aqui.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral