Estou perplexo. Preciso retornar um TRUE ou FALSE por ProductId se os 2 registros mais recentes criados forem 'pass' e os valores de LEVEL forem diferentes.
PRODUCTID CREATEDATE STATUS LEVEL
ABC 1/3/2016 fail 1
ABC 1/4/2016 pass 2
ABC 1/5/2016 pass 3
DEF 1/1/2016 pass 1
DEF 1/2/2016 pass 1
DEF 1/10/2016 pass 1
DEF 1/11/2016 fail 1
GHI 12/29/2015 pass 1
GHI 12/30/2015 fail 1
JKL 1/1/2016 pass 1
JKL 1/2/2016 pass 1
Com base nos valores acima, o seguinte seria retornado:
PRODUCTID RUNSTATUS
ABC TRUE
DEF FALSE
GHI FALSE
JKL FALSE
Qualquer ajuda é muito apreciada.
- POST ATUALIZADO com lógica adicional.
Eu adicionei a coluna LEVEL. A consulta precisa retornar conforme descrito acima.
Retorne TRUE ou FALSE por ProductId se os 2 registros mais recentes criados forem 'pass' e os valores LEVEL forem diferentes.
Se um ProductID tiver apenas um total de registro e for PASS, será FALSE. Deve haver dois 'passes' seguidos.
A query abaixo funciona assim:
Consulta:
Consulte SQL Fiddle .
Resultado:
Outra solução usando a função LAG :
Consulta: