getInt retornando valor 0 (zero), utilizando SELECT MAX

Tenho a seguinte lógica:


             iOk = oResultadoMegasena.executeSQL("SELECT COUNT(*) AS nrVezes," +
                                                       " MAX(resultado_megasena.nrConcurso) AS nrUltConcursoDezena," +
                                                       " MAX((resultado_megasena.nrconcurso - (SELECT MAX(b.nrconcurso)" +
                                                                                               " FROM resultado_megasena b" +
                                                                                              " WHERE b.nrconcurso < resultado_megasena.nrconcurso" +
                                                                                                " AND (b.nrdezena1 = " + iIndice.toString() + " OR" +
                                                                                                     " b.nrdezena2 = " + iIndice.toString() + " OR" +
                                                                                                     " b.nrdezena3 = " + iIndice.toString() + " OR" +
                                                                                                     " b.nrdezena4 = " + iIndice.toString() + " OR" +
                                                                                                     " b.nrdezena5 = " + iIndice.toString() + " OR" +
                                                                                                     " b.nrdezena6 = " + iIndice.toString() + ")" +
                                                                                                " AND resultado_megasena.nrconcurso >= " + lnrConcursoDe.toString() +
                                                                                                " AND resultado_megasena.nrconcurso <= " + lnrConcursoAte.toString() +
                                                                                                " ))) AS nrMaiorAtraso" +
                                                  " FROM resultado_megasena" +
                                                 " WHERE resultado_megasena.nrConcurso >= " + lnrConcursoDe.toString() +
                                                   " AND resultado_megasena.nrConcurso <= " + lnrConcursoAte.toString() +
                                                   " AND (resultado_megasena.nrDezena1 = " + iIndice.toString() +
                                                    " OR resultado_megasena.nrDezena2 = " + iIndice.toString() +
                                                    " OR resultado_megasena.nrDezena3 = " + iIndice.toString() +
                                                    " OR resultado_megasena.nrDezena4 = " + iIndice.toString() +
                                                    " OR resultado_megasena.nrDezena5 = " + iIndice.toString() +
                                                    " OR resultado_megasena.nrDezena6 = " + iIndice.toString() + ")"
                                                );
             if ( iOk ) {
                iVezes = oResultadoMegasena.getCampoInteger("nrVezes");
                iUltConcursoDezena = oResultadoMegasena.getCampoInteger("nrUltConcursoDezena");
                iAtrasoAtual = lUltConcurso - iUltConcursoDezena;
                iMaiorAtraso = oResultadoMegasena.getCampoInteger("nrMaiorAtraso");
             } else {
                lForm.dispose();
                break;
             }

O método "getCampoInteger" faz um "getInt" no Resultset.

O conteúdo dos dois primeiros campos do SELECT ("nrVezes" e "nrUltConcursoDezena" ) estão sendo retornados corretamente. Porém a busca do campo "nrMaiorAtraso" está sempre retornando 0 (zero).

Não dá erro, já acompanhei por debug. Simplesmente retorna o valor zero.

Também já peguei este SQL e executei diretamente no banco, e lá retorna o valor correto.

Estou desconfiado que por ter um SELECT MAX dentro de outro SELECT MAX está se perdendo em algum ponto, mas também não sei se é o Firebird (versão 1.5) ou se é algo do Java.

Alguém tem alguma idéia?