Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fábio Hargreaves

Select Complexa - data + 5

Recommended Posts

Olá,

Não tenho conhecimento sobre complexas querys e estou com uma imensa dificuldade para montar uma para um relatório que preciso.

Segue minha necessidade:

Tenho a tabela producao e a tabela producao_setor. Quero listar todos os setores em uma coluna e nas 3 próximas, fazer uma contagem de OP (ordem de producao) pela data de emissão com status 'Aberta', tipo, OP's abertas até 5 dias, OP's abertas entre 5 a 10 dias e finalmente OP's abertas há mais de 10 dias.

Ficaria assim:

SETOR 0 - 5 dias 6 - 10 dias + 10 dias

PINTURA 3 0 2

LIMPEZA 10 2 0

Os valores representam a contagem de OP's abertas, onde utilizo o count(codproducao).

Consegui relacionar através da query abaixo, porém não consigo separar por dias.

SELECT s.setor, COUNT( codproducao )
FROM producao p
JOIN producao_setor s ON p.setor = s.codproducao_setor
WHERE p.status = 'Aberta'
GROUP BY s.setor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise por MYSQL CASE PIVOT e vai achar farto material.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo assim

SELECT s.setor,
       SUM(case when datediff(currdate(),data_emissao) between  0 and 5 then 1 else 0 end) 00_a_05,
       sum(case when datediff(currdate(),data_emissao) between  6 and 9 then 1 else 0 end) 06_a_09,
       sum(case when datediff(currdate(),data_emissao) >= 10 and 5 then 1 else 0 end) 10_ou_mais
FROM producao p
JOIN producao_setor s ON p.setor = s.codproducao_setor
WHERE p.status = 'Aberta'
GROUP BY s.setor

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.