2016-09-22 8:00 GMT+12:00 Antonio Cesar <[email protected]>: > Segue > SELECT > tmp.codigo_empresa, > tmp.codigo_anterior, > tmp.tipo, > SUM(tmp.mes01) AS quantidade_mes01, > SUM(tmp.mes02) AS quantidade_mes02, > SUM(tmp.mes03) AS quantidade_mes03, > SUM(tmp.mes04) AS quantidade_mes04, > SUM(tmp.mes05) AS quantidade_mes05, > SUM(tmp.mes06) AS quantidade_mes06, > SUM(tmp.mes07) AS quantidade_mes07, > SUM(tmp.mes08) AS quantidade_mes08, > SUM(tmp.mes09) AS quantidade_mes09, > SUM(tmp.mes10) AS quantidade_mes10, > SUM(tmp.mes11) AS quantidade_mes11, > SUM(tmp.mes12) AS quantidade_mes12 > FROM > (SELECT > its.codigo_empresa, > ite.codigo_anterior, > CAST('Saídas' AS CHAR(15)) AS tipo, > SUM(CASE WHEN its.mes_ref = '102015' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes01, > SUM(CASE WHEN its.mes_ref = '112015' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes02, > SUM(CASE WHEN its.mes_ref = '122015' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes03, > SUM(CASE WHEN its.mes_ref = '012016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes04, > SUM(CASE WHEN its.mes_ref = '022016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes05, > SUM(CASE WHEN its.mes_ref = '032016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes06, > SUM(CASE WHEN its.mes_ref = '042016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes07, > SUM(CASE WHEN its.mes_ref = '052016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes08, > SUM(CASE WHEN its.mes_ref = '062016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes09, > SUM(CASE WHEN its.mes_ref = '072016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes10, > SUM(CASE WHEN its.mes_ref = '082016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes11, > SUM(CASE WHEN its.mes_ref = '092016' THEN (its.quantidade_saida / > un.quantidade) ELSE 0 END) AS mes12 > FROM > ((item_mensal its > INNER JOIN item ite ON its.codigo_item = ite.codigo) > INNER JOIN unidade un ON ite.codigo_unidade = un.codigo) > WHERE > its.ano_ref >= '2015-10-01' AND > its.ano_ref <= '2016-09-30' AND > its.codigo_item = 10016528 > GROUP BY > "tipo", > its.codigo_empresa, > ite.codigo_anterior > UNION ALL > SELECT > its.codigo_empresa, > ite.codigo_anterior, > CAST('Entradas' AS CHAR(15)) AS tipo, > SUM(CASE WHEN its.mes_ref = '102015' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes01, > SUM(CASE WHEN its.mes_ref = '112015' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes02, > SUM(CASE WHEN its.mes_ref = '122015' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes03, > SUM(CASE WHEN its.mes_ref = '012016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes04, > SUM(CASE WHEN its.mes_ref = '022016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes05, > SUM(CASE WHEN its.mes_ref = '032016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes06, > SUM(CASE WHEN its.mes_ref = '042016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes07, > SUM(CASE WHEN its.mes_ref = '052016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes08, > SUM(CASE WHEN its.mes_ref = '062016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes09, > SUM(CASE WHEN its.mes_ref = '072016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes10, > SUM(CASE WHEN its.mes_ref = '082016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes11, > SUM(CASE WHEN its.mes_ref = '092016' THEN (its.quantidade_entrada > / un.quantidade) ELSE 0 END) AS mes12 > FROM > ((item_mensal its > INNER JOIN item ite ON its.codigo_item = ite.codigo) > INNER JOIN unidade un ON ite.codigo_unidade = un.codigo) > WHERE > its.ano_ref >= '2015-10-01' AND > its.ano_ref <= '2016-09-30' AND > its.codigo_item = 10016528 > GROUP BY > "tipo", > its.codigo_empresa, > ite.codigo_anterior) tmp > GROUP BY > tmp.tipo, > tmp.codigo_empresa, > tmp.codigo_anterior > ORDER BY > tmp.tipo, > tmp.codigo_empresa > > Em 21/09/2016 16:57, Euler Taveira escreveu: > >> On 21-09-2016 16:32, Antonio Cesar wrote: >> >>> Estou montado esse select e esta muito lento, alguem pode me ajudar? >>> >>> EXPLAIN ANALYZE. Cadê a consulta? >> >> >> > >
Execute sua query com Explain analyze... https://www.postgresql.org/docs/current/static/sql-explain.html explain analyze SELECT * FROM test; Poste o resultado aqui (Melhor de visualizar): http://explain.depesz.com/ e nos mande o link Lucas
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
