IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Récupérer N nombre dernier enregistrement d'une requete ?


Sujet :

DB2

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    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 ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    classez dans le sens inverse et fait un fetch first ?

    Sinon, non, ca n'est pas possible.

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    seuelement cette solutuion qui existe : le sens inverse et fait un fetch first ?
    Merci boucoup

  4. #4
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Juin 2008
    Messages : 154
    Points : 225
    Points
    225
    Par défaut
    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.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Tu peux aussi utiliser les fonctions OLAP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    Merci bien de vos réponse

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    Sur STRQRY et ISERIE Cette requete marche bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Faudrait peut être donner le nom de ton schéma.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select ....from MONSCHEMA.MATABLE

  9. #9
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    ç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

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Si tu fais sur une ligne de commande un

    peux-tu copier/coller du print screen du premier écran ?

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Il faut faire le DSPFD FREGLE00/Fdmpr sur une ligne de commande d'un "écran vert".

    Quelle est la version de l'OS/400 ?

  12. #12
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    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

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    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

  14. #14
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    des simples select avec rownumber marche bien mais select impriqué ça marche pas avec rownumber

    sur STRSQL et Iserie ça marche bien aussi

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    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.

  16. #16
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    D'accord merci bien

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    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.

  18. #18
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    D'accord merci boucoup

    je sais pas comment je peux appeller une procédure stocké stocké depuis webdev si comme un progamme RPG?

  19. #19
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    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.

  20. #20
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 25
    Points
    25
    Par défaut
    D'accord
    Merci

Discussions similaires

  1. Nombres D'enregistrements d'une requete
    Par Fluxy dans le forum ASP
    Réponses: 3
    Dernier message: 02/08/2007, 15h54
  2. Dernier enregistrement d'une requete
    Par w3sk3r dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/08/2006, 19h19
  3. nombre d'enregistrement d'une requete
    Par karimspace dans le forum Oracle
    Réponses: 3
    Dernier message: 29/03/2006, 16h40
  4. Nombre d'enregistrements d'une requete source
    Par kleenex dans le forum Access
    Réponses: 3
    Dernier message: 10/01/2006, 11h13
  5. Réponses: 2
    Dernier message: 13/03/2005, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo