|
Bas de page | |
---|---|
Auteur | Sujet : [ORACLE] Pagination et tri (order by) |
Alisteroid | J'ai un gros problème, je suis débutant sous oracle, et j'ai besoin de faire une liste paginée avec un tri sur chaque colonne. Ca fait des heures que je cherche comment effectuer cette pagination en utilisant des clauses order by group by dans mes requetes, mais après pas mal de recherches, je ne trouve rien qui marche. Dès que je tri ma liste, les elements de la nième page ne sont plus les mêmes, et je ne peux pas faire de order by rowid a cause de mes clauses group by... Pour info voila la tête de ma requete :
J'ai essayé d'appliquer cette méthode (ou ci-dessous) mais sans succès, la pagination marche (50 par 50 ici), mais je ne peux pas me servir des critères de tri (order by n'importe quel champ du 1er select bien sur) car oracle refuse le order by rowid sur un group by
Chaque fleche sur la photo ci dessous tri la liste par ordre croissant ou decroissant de nom, vs ou autre... Si vous pouviez me donner un coup de main ça me sauverai car je suis dans une impasse , je pense qu'il y a un moyen d'implémenter ce qui est écris dans le lien, mais je n'y parviens pas. EDIT : Désolé d'avoir trafiqué le screen, données sensibles oblige Message édité par Alisteroid le 22-05-2007 à 19:11:24 |
Publicité | Posté le 22-05-2007 à 17:49:41 |
Alisteroid | Merci beaucoup MagicBuzz , je crois que je suis pas sorti du taf avant minuit |
MagicBuzz | D'autres questions ? |
Alisteroid | T'es un dieu
Message édité par Alisteroid le 22-05-2007 à 19:39:35 |
Alisteroid | Ahhhhhhhhh comment je fais pour avoir le nombre de lignes qu'aurait retourné la requete sans la pagination? |
Alisteroid | Bon je suis désolé MagicBuzz, mais je me rends compte que ce que je voulais faire est compltement débile , ça doit être la fatigue, je me retrouve à ne plus pouvoir trier ma liste entierement mais uniquement page -> sans intéret. Etant donné que de limiter le nombre d'enregistrement revient au même que de tout prendre au niveau perf, autant que je fasse un array_slice() sur mon tableau avant l'affichage (enfin je crois, a moins que tu connaisses une bonne syntaxe pour gagner en perf, mais pour l'instant je vois aucune différence entre paginer 10 par 10 ou afficher 400 d'un coup) . Message édité par Alisteroid le 23-05-2007 à 09:36:40 |
MagicBuzz | Le souci, c'est que si demain tu passes à une architecture n-Tiers (SGBD et application sur deux serveurs distincts) tu vas avoir un problème de bande passante entre les deux.
|
Publicité | Posté le 23-05-2007 à 09:38:04 |
Alisteroid | Mouais, je vois , ma base est assez légère (30Mo) et au pire je fais un calcul sur pratiquement (sum) tout mais le résultat de ma requete ne me retourne au pire que 500 lignes, et seulement une dixaine de champs.
|
Alisteroid | Merci beaucoup de ton explication en tout cas |
Sujets relatifs | |
---|---|
[Oracle] Requete sur les schémas. | Aide requete oracle, sum sur 2 tables différentes |
[oracle] nom de table en argument d'une procedure | Aide creation requete oracle |
[oracle] vue sur plusieurs tables a la structure identique | problème: Pagination moteur de recherche |
Oracle : convertion décimal | Présentation sur Oracle 9i |
Script - Base de données | connexion à une base oracle avec DBI |
Plus de sujets relatifs à : [ORACLE] Pagination et tri (order by) |