Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/03/2011, 17h54   #1
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Par défaut Récupérer N nombre dernier enregistrement d'une requete ?

Bonjour,

je cherche comment récupérer par exmple 20 dernier lignes d'une requete , le contraire de fetch first only ?
Est ce possible oui non ?
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 18h27   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
classez dans le sens inverse et fait un fetch first ?

Sinon, non, ca n'est pas possible.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 11h02   #3
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Bonjour,
seuelement cette solutuion qui existe : le sens inverse et fait un fetch first ?
Merci boucoup
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 11h24   #4
Membre actif
 
Inscription : juin 2008
Messages : 146
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : juin 2008
Messages : 146
Points : 183
Points : 183
Autre possibilité mais uniquement dans un programme avec gestion de curseur. Tu te sers d'un scrollable cursor. Dès l'open du curseur, tu connais alors le nombre de lignes renvoyées par le curseur. Tu te positionnes directement sur la dernière ligne - 20 et tu lis les 20 dernières lignes, toute sorte de fetchs très simples à faire avec un scrollable curseur. Par contre, gaffe à l'utilisation de ces curseurs, surtout en terme de perf, ce n'est pas toujours le pied, tout dépend des paramètres sensitive ou insensitive dans le declare et dans le fetch. Je n'ai pas mes docs près de moi, mais sauf erreur de ma part, pour faire simple, il faut tout mettre insensitive. Dans ce cas, pas de souci de perf à prévoir.
pdz74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 11h38   #5
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Tu peux aussi utiliser les fonctions OLAP :

Code :
1
2
3
4
5
6
WITH t1 AS (                                                        
SELECT empno, salary, row_number() over(ORDER BY salary DESC) rang  
FROM employee)                                            
SELECT * FROM t1                                                    
WHERE rang <= 20                                                    
ORDER BY empno
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 12h12   #6
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Merci bien de vos réponse

Citation:
Envoyé par K2R400 Voir le message
Tu peux aussi utiliser les fonctions OLAP :

Code :
1
2
3
4
5
6
WITH t1 AS (                                                        
SELECT empno, salary, row_number() over(ORDER BY salary DESC) rang  
FROM employee)                                            
SELECT * FROM t1                                                    
WHERE rang <= 20                                                    
ORDER BY empno

En effet je travaille avec webdev et l'acés natif as400 où je doit faire ce code, comme procédure stocké ?

Merci d'avance
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 12h17   #7
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Sur STRQRY et ISERIE Cette requete marche bien :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
SELECT                                                           
*                                                                
FROM (                                                           
SELECT ROWNUMBER() over (ORDER BY da DESC , dm DESC ,dj DESC)   AS row_number , 
da, 
dm, 
dj 
FROM 
Fdmpr
	 )
 
AS TABLE            WHERE row_number BETWEEN 1 AND 13
mais sur webdev j'ai un message d'erreur :
Le fichier <Fdmpr )> est inconnu dans l'analyse ou n'est pas un fichier.

je sais pas pourqoui ?
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 14h30   #8
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Faudrait peut être donner le nom de ton schéma.
Code :
SELECT ....FROM MONSCHEMA.MATABLE
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 15h16   #9
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
ça marche pas je l'avais essayer me donne le message :
Le fichier <FREGLE00.Fdmpr )> est inconnu dans l'analyse ou n'est pas un fichier.
Merci bc
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 16h58   #10
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Si tu fais sur une ligne de commande un

peux-tu copier/coller du print screen du premier écran ?
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 17h24   #11
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Il faut faire le DSPFD FREGLE00/Fdmpr sur une ligne de commande d'un "écran vert".

Quelle est la version de l'OS/400 ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h12   #12
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Contrôle . . . . Colonnes 1 - 78
Recherche . . . .
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
8/03/11 Description de fichier
Paramètres de la commande DSPFD
Fichier . . . . . . . . . . . . . . . . . . : FILE FDMPR
Bibliothèque . . . . . . . . . . . . . . : FREGLE00
Type d'information . . . . . . . . . . . . : TYPE *ALL
Attributs du fichier . . . . . . . . . . . : FILEATR *ALL
Système . . . . . . . . . . . . . . . . . . : SYSTEM *LCL
En-tête de description de fichier
Fichier . . . . . . . . . . . . . . . . . . : FILE FDMPR
Bibliothèque . . . . . . . . . . . . . . . : FREGLE00
Type de fichier . . . . . . . . . . . . . . : Physique
Type de fichier . . . . . . . . . . . . . . : FILETYPE *DATA
ID pool mémoire secondaire . . . . . . . . : 00001
Attributs fichier base de données
Fichier à description externe . . . . . . . : Oui
ID niveau du fichier . . . . . . . . . . . : 1101219002541
Date de création . . . . . . . . . . . . . : 21/01/06
Texte de description . . . . . . . . . . . : TEXT Fich.Ph.DEMANDE DE
Fichier réparti . . . . . . . . . . . . . . : Non
Table SQL partitionnée . . . . . . . . . : Non
DBCS admis . . . . . . . . . . . . . . . . : Non
Nombre maximal de membres . . . . . . . . . : MAXMBRS 1
Nombre de contraintes . . . . . . . . . . : 0
Nombre de déclencheurs . . . . . . . . . . : 0
Nombre de membres . . . . . . . . . . . . . : 1
Maintenance du chemin d'accès . . . . . . . : MAINT *IMMED
Rétablissement chemin d'accès . . . . . . . : RECOVER *AFTIPL
Forcer chemin d'accès sur clé . . . . . . . : FRCACCPTH *NO
Taille du membre . . . . . . . . . . . . . : SIZE *NOMAX
Allocation mémoire. . . . . . . . . . . . . : ALLOCATE *NO
Mémoire contiguë . . . . . . . . . . . . . : CONTIG *NO
Unité mémoire choisie . . . . . . . . . . . : UNIT *ANY
Nombre enreg forcés en écriture . . . . . . : FRCRATIO *NONE
Attente maximale fichier . . . . . . . . . : WAITFILE *IMMED
Attente maximale enregistrement . . . . . . : WAITRCD 60
% maximal d'enregistrements supprimés . . . : DLTPCT *NONE
Réutilisation enregistrements supprimés . . : REUSEDLT *NO
ID codé de jeu de caractères . . . . . . . : CCSID 297
Opération lecture admise . . . . . . . . . : Oui
Opération écriture admise . . . . . . . . . : Oui
Opération mise à jour admise . . . . . . . : ALWUPD *YES
Opération suppression admise . . . . . . . : ALWDLT *YES
Vérification du niveau de format . . . . . : LVLCHK *YES
Type de chemin d'accès . . . . . . . . . . : Par clé
Taille du chemin d'accès . . . . . . . . . : ACCPTHSIZ *MAX4GB
Longueur maximale de la clé . . . . . . . . : 10
Longueur maximale d'enregistrement . . . . : 409
Non rémanente . . . . . . . . . . . . . . . : Non
Fichier en cours de journalisation . . . . : Oui
Journal en cours ou dernier . . . . . . . . : JRNOFF
Bibliothèque . . . . . . . . . . . . . . : JOURNAL
Images journal . . . . . . . . . . . . . . : IMAGES *BOTH
Postes de journal à omettre . . . . . . . . : OMTJRNE *OPNCLO
Dernière date/heure de journalisation . . . : 02/03/11
escription du chemin d'accès
Maintenance du chemin d'accès . . . . . . . : MAINT *IMMED
Valeurs de clé unique obligatoires . . . . : UNIQUE Oui
Chemin d'accès journalisé . . . . . . . . . : Non
Type de chemin d'accès . . . . . . . . . . : Par clé
Type de contrainte . . . . . . . . . . . . : NONE
Nombre de zones clés . . . . . . . . . . . : 5
Format d'enregistrement . . . . . . . . . . : EDMPR
Zone clé . . . . . . . . . . . . . . . . : CDVEND
Séquence . . . . . . . . . . . . . . . : Croissante
+....1....+....2....+....3....+....4....+....5....+....6....+....7..
Signe indiqué . . . . . . . . . . . . . : SIGNE
Hors texte/Digit indiqué . . . . . . . : *NONE
Séquence alternée . . . . . . . . . . . : Non
Zone clé . . . . . . . . . . . . . . . . : DA
Séquence . . . . . . . . . . . . . . . : Croissante
Signe indiqué . . . . . . . . . . . . . : SIGNE
Hors texte/Digit indiqué . . . . . . . : *NONE
Séquence alternée . . . . . . . . . . . : Non
Zone clé . . . . . . . . . . . . . . . . : DM
Séquence . . . . . . . . . . . . . . . : Croissante
Signe indiqué . . . . . . . . . . . . . : SIGNE
Hors texte/Digit indiqué . . . . . . . : *NONE
Séquence alternée . . . . . . . . . . . : Non
Zone clé . . . . . . . . . . . . . . . . : DJ
Séquence . . . . . . . . . . . . . . . : Croissante
Signe indiqué . . . . . . . . . . . . . : SIGNE
*...+....1....+....2....+....3....+....4....+....5....+....6....+....
Hors texte/Digit indiqué . . . . . . . : *NONE
Séquence alternée . . . . . . . . . . . : Non
Zone clé . . . . . . . . . . . . . . . . : NSER
Séquence . . . . . . . . . . . . . . . : Croissant
Signe indiqué . . . . . . . . . . . . . : SIGNE
Hors texte/Digit indiqué . . . . . . . : *NONE
Séquence alternée . . . . . . . . . . . : Non
Séquence de tri . . . . . . . . . . . . . . : SRTSEQ *HEX
Identificateur de langue . . . . . . . . . : LANGID FRA
Description de membre
Membre . . . . . . . . . . . . . . . . . . : MBR FDMPR
ID niveau du membre . . . . . . . . . . . : 106012116
Date de création . . . . . . . . . . . . : 21/01/06
Texte de description . . . . . . . . . . : TEXT Fich.Ph.D
Date de péremption . . . . . . . . . . . : EXPDATE *NONE
Maintenance du chemin d'accès . . . . . . : MAINT *IMMED
Rétablissement du chemin d'accès . . . . : RECOVER *AFTIPL
Taille du membre. . . . . . . . . . . . . : SIZE *NOMAX
Nombre actuel d'enregistrements . . . . . : 45140
Nombre d'enregistrements supprimés . . . : 176290
Allocation mémoire. . . . . . . . . . . . : ALLOCATE *NO
Mémoire contiguë . . . . . . . . . . . . : CONTIG *NO
Unité mémoire choisie . . . . . . . . . . : UNIT *ANY
Nombre d'enreg forcés en écriture . . . . : FRCRATIO *NONE
Partage ouverture . . . . . . . . . . . . : SHARE *NO
% maximal d'enregistrements supprimés . . : DLTPCT *NONE
Nombre d'accès au membre . . . . . . . . : 0
Statistiques activités espace de données :
Taille de l'espace de données (octets) : 94461952
Accès en ouverture au fichier physique : 83.9
Accès en fermeture au fichier physique : 83.9
Opérations d'écriture . . . . . . . . . : 9
.+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
Opérations de mise à jour . . . . . . . : 397.466
Opérations de suppression . . . . . . . : 197
Lectures logiques . . . . . . . . . . . : 486.223.153
Lectures physiques . . . . . . . . . . : 3.580.353
Opérations de mise à blanc . . . . . . :
Opérations de copie sur espace données :
Opérations de réorganisation . . . . . :
Reconstructions de chemins d'accès . . : 30
Enreg rejetés par sélection de clé . . : 60.548
Enreg rejetés par non sélection de clé : 167.123.079
Enreg rejetés par sélection groupage . :
Statistiques d'activité du chemin d'accès :
Lectures logiques du chemin d'accès . . : 16.577.635
Lectures physiques du chemin d'accès . :
Taille du chemin d'accès . . . . . . . : 1392640
Nombre de postes du chemin d'accès . . : 45140
Validité du chemin d'accès . . . . . . : Oui
Partage de chemin d'accès implicite . . : Non
Chemin d'accès journalisé . . . . . . . : Non
Nombre val clés partielles uniques . . :
Zone clé 1 . . . . . . . . . . . . . : 62
Zones clés 1 à 2 . . . . . . . . . . : 299
Zones clés 1 à 3 . . . . . . . . . . : 2637
Zones clés 1 à 4 . . . . . . . . . . : 22821
Date/heure de dernière modification . . . : 08/03/11 16:55:1
Date/heure de dernière sauvegarde . . . . : 08/03/11 01:37:2
Date/heure de dernière restauration . . . : 22/05/10 17:26:3
Date de dernière utilisation . . . . . . : 08/03/11
Nombre de jours d'utilisation . . . . . . : 66
Date de réinitialisation . . . . . . . :
Objet restauré avec des transactions partielles,
appliquer modifications de journal requises . : *NO
Transaction partielle existante,
arrêt de l'invalidation . . . . . . . . . : *NO
Récepteur journal de début pour applicat :
Bibliothèque . . . . . . . . . . . . . :
Unité ASP . . . . . . . . . . . . . . . :
Liste des formats
Long Identificateur
Format Zones enreg niveau format
EDMPR 44 409 3DD6ACCCDAEBD
Texte . . . . . . . . . . . . . . . . . . :
Nombre total de formats . . . . . . . . . . : 1
Nombre total de zones . . . . . . . . . . . : 44
Longueur total enregistrement . . . . . . . : 409
Liste des membres
Type Date Dernière modif
Membre Taille Type création Date Heure Enregs
FDMPR 95854592 21/01/06 08/03/11 16:55:13 45140
Texte :Fich.Ph.DEMANDE DE PRIX ENTETE
Nombre total de membres . . . . . . . . . : 1
Nombre total de membres non disponibles. . : 0
Nombre total d'enregistrements . . . . . . : 45140
Nombre total d'enregistrements supprimés . : 176290
Taille globale des membres . . . . . . . . : 95854592


Version 5 edition 4
Merci
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h25   #13
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Tout à l'air normal.
D'ailleurs tu peux essayer ta requête sous STRSQL tu verras bien.

je pense que le problème vient de WEBDEV que personnellement je ne connais pas. Regarde plutôt de ce côté là. Essaye un simple SELECT * FROM pour voir.
Courage
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h36   #14
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
des simples select avec rownumber marche bien mais select impriqué ça marche pas avec rownumber

sur STRSQL et Iserie ça marche bien aussi
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h49   #15
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Je ne me rappelle plus bien mais je crains pour toi que les fonctions OLAP telles que row_number() ne soient pas supportées en V5R4. Je n'en suis cependant pas sûr mais Patrick (K2R400) va vite nous le confirmer ou infirmer.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h50   #16
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
D'accord merci bien
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 18h52   #17
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Non, je viens de m'en souvenir, ce n'est pas cà. D'ailleurs, ça marche en direct sur l'AS400, alors c'est pas çà, désolé !

Puisque ça marche sur l'AS400, tu pourrais mettre ta requête OLAP dans un procédure stockée sur DB2/400 (CREATE PROCEDURE) et l'appeler ensuite depuis Webdev. Je sais qu'il y a de (mauvaises) surprises avec Webdev.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 19h00   #18
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
D'accord merci boucoup

je sais pas comment je peux appeller une procédure stocké stocké depuis webdev si comme un progamme RPG?
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 19h20   #19
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Je crois que tu dois l'appeler par un SQLEXEC mais mes connaissances Webdev sont ultra limitées donc je n'en suis pas sûr.

Vérifie en recherchant "procédures stockées" dans ce support de cours Webdev.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 19h23   #20
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
D'accord
Merci
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h09.


 
 
 
 
Partenaires

Hébergement Web