2012-07-04 28 views
5

Quiero recuperar diez registros solo en la base de datos de derby. He estado buscando el tutorial para hacer eso:sql para el grupo de registro de límite por la base de datos in derby

select * from (select ROW_NUMBER() OVER() AS rownum,name,effort from (select name, effort from 
(select TBL_PROJECT_DETAIL.P_NAME as Name, sum(TBL_TIMESHEET.EFFORT) as effort from 
TBL_TIMESHEET join tbl_project_detail on TBL_TIMESHEET.PROJECT_ID = TBL_PROJECT_DETAIL.ID group by TBL_PROJECT_DETAIL.P_NAME) as New) 
as new2) 
as new3 
where rownum <= 10 

que puede limitar los datos a 10 por primera vez por el uso donde rownum <= 10 al final, pero el problema es que los datos no se ordena utilizando order by cláusula primera así que tiene 10 datos aleatorios.

cuando pongo order by antes de que los datos dan rownum:

select * from (select ROW_NUMBER() OVER() AS rownum,name,effort from 
(select name, effort from 
(select TBL_PROJECT_DETAIL.P_NAME as Name, sum(TBL_TIMESHEET.EFFORT) as effort from 
TBL_TIMESHEET join tbl_project_detail on TBL_TIMESHEET.PROJECT_ID = TBL_PROJECT_DETAIL.ID group by TBL_PROJECT_DETAIL.P_NAME) 
as New) 
as new2 order by effot desc) 
as new3 where rownum <=10 

lo dio error. Es como no puede group by cuando pones nuevamente el resultado como tabla interna para la consulta, pero el requisito para derby es usar row_number. Primero agrega row_number en inner y usa eso en where, en la siguiente capa. Cualquiera puede ayudar? Derby no es límite de soporte. ¿De alguna otra manera que pueda tener 10 registros primero que ordeno?

Respuesta

9

he estado investigando y he encontrado como esto limitar en Derby utilizando

FETCH FIRST 10 ROWS ONLY 

pero pobre de mí ese soporte en derby 10.5 y estoy usando derby 10.4 paquete con glassfish 2.1 cualquiera puede ayudar con esto si sigo usando 10.4 cuz estoy demasiado asustado para migrar

+1

¿puede dar consulta completa –

1

Puede dar la orden por cláusula dentro "OVER()"

OVER(order by effot desc) AS rownum 
+2

No. Derby no es compatible con eso: http://db.apache.org/derby/docs/10.7/ref/rreffuncrownumber.html –

+0

lo siento, eso no funciona si no es compatible con que me temo su error sigue siendo estoy utilizando derby 10.4 –

Cuestiones relacionadas