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

SQL Oracle Discussion :

Récupérer le dernier enregistrement


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut Récupérer le dernier enregistrement
    Bonsoir,
    cela fait 3 jours que je suis bloqué sur ce probleme, je veux recuperer le dernier statut enregistrer d'une fiche, exemple de table:

    Id--fiche--Statut--DateCreation--Obs
    1 200 400 01/01/00 A1
    2 200 401 02/01/00 A2
    3 200 402 03/01/00 A3
    4 200 403 04/01/00 A4
    5 200 404 05/01/00 A5
    6 201 405 06/01/00 A6
    7 201 406 07/01/00 A7
    8 201 405 08/01/00 A8
    9 201 404 09/01/00 A9
    10 201 403 10/01/00 A10
    11 202 400 11/01/00 A11
    12 202 401 12/01/00 A12
    13 202 402 13/01/00 A13
    14 202 403 14/01/00 A14
    15 202 404 15/01/00 A15
    j'ai une base oracle
    le resultat de ma requete doit me renvoyer le dernier statut par fiche:
    statut--count
    404--2
    406--1
    merci
    latrach.net

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    essaie ça (je l'ai pas encore testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT   statut, COUNT (1) cpt 
        FROM (SELECT fiche, statut,
                     ROW_NUMBER () OVER (PARTITION BY fiche ORDER BY 
    datecreation DESC)  rn
                FROM tab_fiche)
       WHERE rn = 1
    GROUP BY statut
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     SELECT fiche, statut, COUNT (1) OVER (PARTITION BY statut) cpt
      FROM (SELECT fiche, statut,
            ROW_NUMBER () OVER (PARTITION BY fiche ORDER BY datecreation DESC)  rn
              FROM tab_fiche)
     WHERE rn = 1

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Y'a plus simple avec la fonction de groupe KEEP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT fiche, MAX(statut) KEEP (DENSE_RANK LAST ORDER BY datecreation) AS last_statut
    FROM tab_fiche
    GROUP BY fiche
    et tu peux même mettre toutes les colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT fiche, 
    MAX(statut) KEEP (DENSE_RANK LAST ORDER BY datecreation) AS last_statut,
    MAX(datecreation) KEEP (DENSE_RANK LAST ORDER BY datecreation) AS last_creation ...
    FROM tab_fiche
    GROUP BY fiche
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    C'est sure c'est plus simple avec la fonction de groupe KEEP ( ça nous evite une subquery), mais dans notre cas je ne pense pas que c'est utile parcequ'il veut aussi compter le nombre de fois qui figure ce dernier statut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    statut--count
    404--2
    406--1

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    J'avais pas vu que c'était un count. Donc la description n'est pas terrible.

    Et puis concernant les valeurs, ce serait plutôt un max du statut (Le 406 est donné en résultat, et il n'est que pour une date intermédiaire).
    Quelle est la question : Le dernier statut ou le plus haut statut ?

    Bref : Trouvons le code suivant les données et le résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT stat, COUNT(*)
    FROM (
    	SELECT fiche, MAX(statut) stat
    	FROM tab_fic
    	GROUP BY fic
    	)
    GROUP BY stat
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Aucun lien entre la description de besoin et le résultat souhaité.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    Quelle est la question : Le dernier statut ou le plus haut statut ?
    le dernier statut créé (date creation)
    le resultat est plutot 403 et non pas 406
    statut--count
    404--2
    403--1
    latrach.net

  8. #8
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    T'as la solution de Salim ou celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT last_statut, count(*)
    from (SELECT 
    MAX(statut) KEEP (DENSE_RANK LAST ORDER BY datecreation) AS last_statut
    FROM tab_fiche
    GROUP BY fiche)
    group by last_statut
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL2000] Récupérer le dernier enregistrement
    Par zooffy dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/11/2007, 14h24
  2. [MySQL] Récupérer le dernier enregistrement
    Par smarechal dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/04/2007, 20h04
  3. [MySQL] Récupérer le dernier enregistrement d'une table
    Par killuaster dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/03/2007, 11h55
  4. récupérer le dernier enregistrement d'une table
    Par kuhnden dans le forum Access
    Réponses: 4
    Dernier message: 21/02/2007, 21h47
  5. [MySQL] Récupérer le dernier enregistrement?
    Par tochbee dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 25/11/2005, 20h29

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