Select retornar penúltimo e antepenúltimo registro

3 respostas
mysql
brizola727

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

3 Respostas

brizola727

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!

Fabianoabreualves

Olá, Marco.

Com sql, você poderia resolver desta forma:

select * from [tabela] order by [campo] desc limit 1,2;

Abraços.

brizola727

Hum bacana obrigado pela resposta!
Eu fiz do jeito que coloquei acima e deu certo…
Mas mesmo assim agradeço sua ajuda!

Criado 20 de junho de 2016
Ultima resposta 11 de jul. de 2016
Respostas 3
Participantes 2