Bom dia pessoal, estou precisando de uma ajuda em uma select.
Tenho o seguinte registro na tabela:
Tenho um select que vai me trazer esse prod_identifier_code.
Baseado nele eu tenho que fazer um select nessa tabela e trazer o penúltimo e antepenúltimo registro.
Alguém poderia me ajudar?
Obrigado!
Att
1 curtida
Senhores consegui resolver. Para quem interessar:
penultimo
select = session.select(tbMaintRepProd);
select.where(WhereConditions.equal(tbMaintRepProd.prodIdentifierCode, bean.getProdIdentifierCode()));
select.orderBy(Ordenation.desc(tbMaintRepProd.dateCreation));;
size = select.getCollection().size();
if(size > 1){
for (Row row1 : select.getCollection()) {
bean = row1.getBean(tbMaintRepProd);
if(bean.getDateCreation().before(dateCreation) && !rmaReturn.equals(bean.getMaintenanceReportCode())){
rmaReturn = bean.getMaintenanceReportCode();
break;
}
}
}
antepenultimo
select = session.select(tbMaintRepProd);
select.where(WhereConditions.equal(tbMaintRepProd.prodIdentifierCode, bean.getProdIdentifierCode()));
select.orderBy(Ordenation.desc(tbMaintRepProd.dateCreation));;
size = select.getCollection().size();
if(size > 1){
for (Row row1 : select.getCollection()) {
bean = row1.getBean(tbMaintRepProd);
if(bean.getDateCreation().before(dateCreation) && !rmaReturn.equals(bean.getMaintenanceReportCode()) && count == 0){
count++;
}else if(bean.getDateCreation().before(dateCreation) && !rmaReturn.equals(bean.getMaintenanceReportCode()) && count == 1){
rmaReturn = bean.getMaintenanceReportCode();
count++;
break;
}
}
}
vlw!
1 curtida
Olá, Marco.
Com sql, você poderia resolver desta forma:
select * from [tabela] order by [campo] desc limit 1,2;
Abraços.
Hum bacana obrigado pela resposta!
Eu fiz do jeito que coloquei acima e deu certo…
Mas mesmo assim agradeço sua ajuda!