Eaí Gurizada, to com um problemão faix tempo… e nunca dá certo
O Enunciado é este: (Problema Real)
Mostrar os produtos por dia, e Contar os seriais (tirando os duplicados) que possuem o cod_Status = 0 (Zero) Excluindo os que estão repetidos no outro grupo onde o cod_Status = 1. na mesma tabela e no mesmo Dia.
Fiz assim:
SELECT a.cod_prod, to_char(a.datah, 'DD/MM/YY') as dia, count(distinct(a.serial)) FROM tb_registro a
WHERE
cod_prod LIKE '%' || '11120' || '%'
AND date_trunc('month', datah) = TO_timestamp('1/2012','MM/YYYY')
AND cod_status = 0
AND
serial not in ( SELECT serial FROM tb_registro WHERE cod_status = 1 AND date_trunc('day', a.datah) = date_trunc('day', datah) )
GROUP BY cod_prod, dia
ORDER BY cod_prod, dia;
Só que não sei se está certo, o banco possui muitas linhas e a subconsulta demora mais de 16 segundos para processar.
Podem me ajudar?
Obrigado.
Saída:
011120;13/01/12;11
011120;16/01/12;124
011120;17/01/12;24
011120;18/01/12;14
011120;19/01/12;6
011120;20/01/12;16
011120;21/01/12;84
011120;23/01/12;92
011120;24/01/12;94