É possível estruturar uma única consulta que retornaria 0 ou 1 (verdadeiro/falso) comparando o primeiro registro com os registros anteriores?
Exemplos de registros na tabela:
ProductID SampleDate RunFailure LevelCode
101 20160322 0 2
101 20160321 0 3
101 20160320 1 2
101 20160318 1 2
102 20160317 0 3
102 20160316 0 2
102 20160315 0 1
103 20160314 1 1
103 20160313 0 2
103 20160312 1 3
Preciso avaliar o registro mais recente por ProductID. No exemplo acima, o último registro (em 20160322) tem um LevelCode de 2. Ele precisa ser comparado ao registro em 20160320 porque é o último registro que falhou com o mesmo LevelCode (portanto, ignoraria o registro em 20160318 porque é mais antigo que o registro do dia 20), portanto, neste caso a consulta retornaria 1 (ou verdadeiro).
Para ProductID 102, a consulta retornaria 0 (ou falso) porque o LevelCode em 20160317 é 3 e não há um registro mais antigo que falhou com o mesmo LevelCode.
ProductID 103 retornaria um 0 (falso) porque em 20160314 o LevelCode é 1 e o último registro para esse ProductID que falhou foi em 20160312 foi para LevelCode3
Idealmente, a consulta retornaria algo como isto:
ProductID IsMostCurrentRunSameLevelAsLastFailedRun
101 1
102 0
103 0
Uma maneira seria usando CROSS APPLY.
Se você identificar o registro mais recente para cada produto na primeira tabela e passar os critérios para a aplicação cruzada.
Como alternativa, examine as funções de janelamento. Você pode fazer muito com eles que pode ser mais eficiente.