Sembra che ci sia riuscito! vi posto il codice casomai qualcuno abbia avuto i miei stessi problemi...
codice:
try {
    DatabaseConnection connection = new HsqldbConnection("PRONTOEPULITO");
    Statement stm = connection.createStatement();

    sql = "select * from dbo.View_DettaglioIndumento "
         + "where CLIEID=" + codCli + " "
         + "AND CMPNUM=" + struttura + " "
         + "AND TAGID='" + tagId + "' "
         + "ORDER BY MOVDAT, STATO DESC";

    ResultSet rs = stm.executeQuery(sql);

    boolean controlSingleLine = false;
    int primaRiga = 0;
    int i = 1;
    while (rs.next()) {
 
        //Utilizzo la variabile Prima riga per verificare se sto leggendo una record
        //nuovo o ne sto leggendo uno successivo e verificare che si tratti dello stesso
        //capo
        //Setto le variabili con i valori correnti
        if (primaRiga == 0) {
            corr_TagId = rs.getString("TAGID");
            corr_NomeMerce = rs.getString("MERCE");
            corr_MovDat = sdf.format(rs.getDate("MOVDAT"));
            corr_Stato = rs.getInt("STATO");
        } 
        //Mi sposto al record successivo per memorizzare le variabili del recor
        //successivo e effettuare così i confronti successivi
        else {
             prev_TagId = corr_TagId;
             prev_NomeMerce = corr_NomeMerce;
             prev_MovDat = corr_MovDat;
             prev_Stato = corr_Stato;

             corr_TagId = rs.getString("TAGID");
             corr_NomeMerce = rs.getString("MERCE");
             corr_MovDat = sdf.format(rs.getDate("MOVDAT"));
             corr_Stato = rs.getInt("STATO");
         }
         //Comincio i controlli sui record...
         //il ResultSet arriva alla fine con la variabile fine a true non viene
          //effettuato più nessun controllo e tutto esce
          //Con la variabile controlSingleLine si controlla se vi è qualche capo che
          //manca di ingresso o uscita
          
          if (primaRiga == 1) {
              controlSingleLine = true;
                   if ((prev_Stato == 20) && (corr_Stato == 10)) {
                         record = "<tr class=\"tr\">\n"
                              + "<td>"
                              + i + ") "
                              + "</td>\n"
                              + "<td>"
                              + corr_TagId
                              + "</td>\n"
                              + "<td>"
                              + corr_NomeMerce
                              + "</td>\n"
                              + "<td>"
                              + prev_MovDat
                              + "</td>\n"
                              + "<td>"
                              + corr_MovDat
                              + "</td>\n"
                              + "</tr>\n";

                          out.print(record);
                          controlSingleLine = false;
                          primaRiga = 0;
                          i++;
                   } else {
                           if (controlSingleLine == true) {
                                  if (prev_Stato == 20) {
                                         record = "<tr class=\"tr\">\n"
                                              + "<td>"
                                              + "</td>\n"
                                              + "<td>"
                                              + corr_TagId
                                              + "</td>\n"
                                              + "<td>"
                                              + corr_NomeMerce
                                              + "</td>\n"
                                              + "<td>"
                                              + prev_MovDat 
                                              + "</td>\n"
                                              + "<td>"
                                              + "N.D"
                                              + "</td>\n"
                                              + "</tr>\n";

                                         out.print(record);
                                         controlSingleLine = false;
                                         
                                     } else {
                                          record = "<tr class=\"tr\">\n"
                                               + "<td>"
                                               + i + ") "
                                               + "</td>\n"
                                               + "<td>"
                                               + prev_TagId
                                               + "</td>\n"
                                               + "<td>"
                                               + prev_NomeMerce
                                               + "</td>\n"
                                               + "<td>"
                                               + "N.D."
                                               + "</td>\n"
                                               + "<td>"
                                               + prev_MovDat 
                                               + "</td>\n"
                                               + "</tr>\n";

                                          out.print(record);
                                          controlSingleLine = false;
                                          i++;
                                     }
                               }
                         }

                   } else {
                         primaRiga = 1;
                   }
              }
              stm.close();
              // close the database connection
             connection.close();
        } catch (Exception cnfex) {
                cnfex.printStackTrace();
                out.println(cnfex);
        }