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 uniquement 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 uniquement le dernier enregistrement
    Bonjour ma requete me renvoie deux enregistrement , et je veux recuperer que le dernier (date_statut)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    SELECT 
     
    USERS.NOM UTILISTAEUR,
    SAVENTETE.NUMERO NUMERO_FICHE,
    SAVENTETEMAT.LIBELLE1_MODELE LE_CODE_ARTICLE,
    STATUTS.LIBELLE LE_STATUT,
    HISTSTATUT.DATE_MODIF DATE_STATUT,
    HISTSTATUT.STATUS_COMMENT MNT_AVOIR,
    FOURNISSEURS.NOM SOUS_TRAITANT
     
     
    FROM HISTSTATUT,STATUTS,USERS,SAVENTETE,FOURNISSEURS,SAVSTAT,SAVENTETEMAT
     
    WHERE HISTSTATUT.ID_STATUT = 4710337
    AND SAVSTAT.ID_SIGLNUM_SAVENTETE=HISTSTATUT.ID_SIGLNUM
    AND HISTSTATUT.ID_STATUT=STATUTS.ID_STATUT
    AND HISTSTATUT.ID_USER=USERS.ID_USER
    AND SAVENTETE.ID_SIGLNUM=HISTSTATUT.ID_SIGLNUM
    AND SAVENTETEMAT.ID_SIGLNUM=HISTSTATUT.ID_SIGLNUM
    AND FOURNISSEURS.ID_FOURNISSEUR=SAVSTAT.ID_ST
    AND SAVSTAT.FDATE_CLOT IS not NULL
     
    AND HISTSTATUT.DATE_MODIF >=to_date('01/01/20080000','DD/MM/YYYYHH24MI')
    AND HISTSTATUT.DATE_MODIF <=to_date('30/06/20080000','DD/MM/YYYYHH24MI')
    resultat de la requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UTILISTAEUR	NUMERO_FICHE	LE_CODE_ARTICLE	DATE_STATUT	MNT_AVOIR	SOUS_TRAITANT
    x	abc12	dvd50	05/31/2008 10:56:41		interne
    x	abc12	dvd50	05/31/2008 10:56:53	30	interne
    et moi je veux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UTILISTAEUR	NUMERO_FICHE	LE_CODE_ARTICLE	DATE_STATUT	MNT_AVOIR	SOUS_TRAITANT
    x	abc12	dvd50	05/31/2008 10:56:53	30	interne
    je suis bloqué merci de votre aide
    latrach.net

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    Problème général : une table my_tbl (id number , dte date) contient X lignes et tu désires obtenir uniquement les Y premières lignes suivant un order by (ascending ou descending) sur dte.

    Solution générale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * 
    FROM ( SELECT id , dte FROM my_tbl ORDER BY dte DESC )
    WHERE rownum = Y ;

  3. #3
    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
    ok pour une fiche, mais imagine si j'ai 2 fiches comment faire pour récupérer le dernier enregistrement par fiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UTILISTAEUR	NUMERO_FICHE	LE_CODE_ARTICLE	DATE_STATUT	MNT_AVOIR	SOUS_TRAITANT
    x	abc12	dvd50	05/31/2008 10:56:41		interne
    x	abc12	dvd50	05/31/2008 10:56:53	30	interne
    y	a12	dvd52	05/30/2008 10:56:41		interne
    y	a12	dvd52	05/30/2008 10:56:53	50	interne
    resultat attendu:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UTILISTAEUR	NUMERO_FICHE	LE_CODE_ARTICLE	DATE_STATUT	MNT_AVOIR	SOUS_TRAITANT
    x	abc12	dvd50	05/31/2008 10:56:53	30	interne
    y	a12	dvd52	05/30/2008 10:56:53	50	interne
    Merci pour votre réponse
    latrach.net

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    Peut-être est-ce plus simple de poser la bonne question tout de suite ?

    Je n'ai pas le temps de te répondre pour l'instant ; envisage l'agrégation.

  5. #5
    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 ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    SELECT   UTILISTAEUR,
    		 NUMERO_FICHE,
    		 LE_CODE_ARTICLE,
    		 LE_STATUT,
    		 DATE_STATUT,
    		 MNT_AVOIR,
    		 SOUS_TRAITANT
    FROM (SELECT  
    			USERS.NOM UTILISTAEUR,
    			SAVENTETE.NUMERO NUMERO_FICHE,
    			SAVENTETEMAT.LIBELLE1_MODELE LE_CODE_ARTICLE,
    			STATUTS.LIBELLE LE_STATUT,
    			HISTSTATUT.DATE_MODIF DATE_STATUT,
    			HISTSTATUT.STATUS_COMMENT MNT_AVOIR,
    			FOURNISSEURS.NOM SOUS_TRAITANT, 
    			row_number() over(partition by USERS.NOM order by HISTSTATUT.DATE_MODIF desc) rn 
    		FROM HISTSTATUT,STATUTS,USERS,SAVENTETE,FOURNISSEURS,SAVSTAT,SAVENTETEMAT
    		WHERE HISTSTATUT.ID_STATUT = 4710337
    		AND SAVSTAT.ID_SIGLNUM_SAVENTETE=HISTSTATUT.ID_SIGLNUM
    		AND HISTSTATUT.ID_STATUT=STATUTS.ID_STATUT
    		AND HISTSTATUT.ID_USER=USERS.ID_USER
    		AND SAVENTETE.ID_SIGLNUM=HISTSTATUT.ID_SIGLNUM
    		AND SAVENTETEMAT.ID_SIGLNUM=HISTSTATUT.ID_SIGLNUM
    		AND FOURNISSEURS.ID_FOURNISSEUR=SAVSTAT.ID_ST
    		AND SAVSTAT.FDATE_CLOT IS NOT NULL
    		 AND HISTSTATUT.DATE_MODIF >=to_date('01/01/20080000','DD/MM/YYYYHH24MI')
    		AND HISTSTATUT.DATE_MODIF <=to_date('30/06/20080000','DD/MM/YYYYHH24MI'))
    where rn =1

  6. #6
    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
    OK MERCI JE TESTERAI CE SCRIPT LUNDI MATIN. JE VOUS TIENS AU COURANT
    latrach.net

  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
    ok ca marche merci bcp salim1
    latrach.net

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

Discussions similaires

  1. [CR ?] obtenir uniquement le dernier enregistrement!
    Par olivier.x dans le forum Formules
    Réponses: 2
    Dernier message: 13/05/2009, 18h32
  2. [MySQL] Requête pour récupérer les 5 derniers enregistrement dans l'ordre croissant
    Par Jonathan.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 07/01/2008, 09h50
  3. récupérer les 3 derniers enregistrements
    Par COLOMBAT dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/09/2007, 11h10
  4. [Interbase] Récupérer les N derniers enregistrements
    Par mameziane dans le forum InterBase
    Réponses: 5
    Dernier message: 05/09/2007, 00h50
  5. Trouve l'identifiant unique du dernier enregistrement créé.
    Par Poussy-Puce dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/01/2006, 14h46

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