Preciso gerar uma query que retorne a quantidade evolutiva de encomendas recebidas por por filial. Se eu gerar um relatório no periodo de 02/2015 a 03/2015 por exemplo, devo consederar somente as filias que receberam encomendas no primeiro mes para mostrar a evolução destas filiais.
Exemplo:
A query que fiz quando deixo o subselect demora uma eternidade para rodar, mas quando eu passo os ids das filiais diretamente, ela roda tranquilamente.
SELECT
filial.nome
,COUNT(encomenda.id_encomenda) AS 'QtdeEncomendas'
,EXTRACT(month FROM encomenda.dataRemessa) AS Mes
,EXTRACT(year FROM encomenda.dataRemessa) AS Ano
FROM encomenda
INNER JOIN filial ON(filial.id_filial = encomenda.id_filial_destino)
WHERE encomenda.id_filial_destino IN(SELECT e.id_filial_destino
FROM encomenda e
WHERE e.dataRemessa BETWEEN '2014-10-01 00:00:00' AND '2014-10-31 23:59:59'
GROUP BY e.id_filial_destino
)
AND encomenda.dataRemessa BETWEEN '2014-10-01 00:00:00' AND '2014-11-30 23:59:59'
GROUP BY encomenda.id_filial_destino, Mes, Ano
ORDER BY nome, Ano, Mes
;
/*
Este aqui roda tranquilamente.
*/
SELECT
filial.nome
,COUNT(encomenda.id_encomenda) AS 'QtdeEncomendas'
,EXTRACT(month FROM encomenda.dataRemessa) AS Mes
,EXTRACT(year FROM encomenda.dataRemessa) AS Ano
FROM encomenda
INNER JOIN filial ON(filial.id_filial = encomenda.id_filial_destino)
WHERE encomenda.id_filial_destino IN(1,2,3,4,5) )
AND encomenda.dataRemessa BETWEEN '2014-10-01 00:00:00' AND '2014-11-30 23:59:59'
GROUP BY encomenda.id_filial_destino, Mes, Ano
ORDER BY nome, Ano, Mes
;
Pergunta
jsergio.c
Boa noite galera,
Estou com o seguinte problema:
Preciso gerar uma query que retorne a quantidade evolutiva de encomendas recebidas por por filial. Se eu gerar um relatório no periodo de 02/2015 a 03/2015 por exemplo, devo consederar somente as filias que receberam encomendas no primeiro mes para mostrar a evolução destas filiais.
Exemplo:
A query que fiz quando deixo o subselect demora uma eternidade para rodar, mas quando eu passo os ids das filiais diretamente, ela roda tranquilamente.
Editado por jsergio.cLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.