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

Oracle Discussion :

[SQL]Fonction last


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut [Résolu][SQL]Fonction last
    Bonjour a tous,

    j'essaie de récupérer le dernier champs durée (pp.durée) dans un ensemble d'enregistrement , ma requete est la suivante mais elle ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select pp.duree keep (dense_rank last order by niactivite)
    from activite a,pr_prf pp 
    where a.nipresc = 12215
    and a.nipresc = pp.nipresc
    L'erreur est toute simple mais je ne vois pas pkoi il m'ecrit ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mot clé from absent a l'emplacement prevu
    merci d'avance

  2. #2
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    il tre faut faire un MAX ou MIN sur le champs pp.durée sinon tu ne peux pas !

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut
    merci pour l'info mais j'avais deja essayé ca ne fonctionne pas en rajoutant un min ou un max, j'ai toujours la meme erreur

    d'autres idées ??

  4. #4
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Peut ê qu'avec une jointure l'instruction ne fonctionne pas

    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    with tb_temp as (
                             select pp.duree, niactivite
                             from activite a,pr_prf pp 
                             where a.nipresc = 12215 
                             and a.nipresc = pp.nipresc
                             )
    select duree keep (dense_rank last order by niactivite) 
    from tb_temp

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut
    re,

    je viens d'essayer avec la table temporaire ca ne fonctionne pas non plus, apparemment le mot reservé 'with' ne lui plait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-00900 : instruction non valide
    a propos j'utilise la version 8i d'oracle mais j'ai vu dans une doc que les fonctions last first .... existait depuis cette version donc ca vient bien de la syntaxe SQL...

    autres idées...

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Tu as Oracle Standard Edition ou Entreprise Edition ?

  7. #7
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut
    je sais pas trop , je suppose que first n'est pas accessible avec la version standard .... ;-)

    je me suis debrouillé sans le last, je recupere l'ensemble des lignes et je vais recuperer mon attributs seulement dans la dernière...
    C'est crade mais au moins ca me permet d'avancer...

    Je reviendrais sur le forum qd j'aurais trouver une solution plus propre pour vous la donné...

    merci de votre aide a +

  8. #8
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Bonjour,


    keep ne fonctionne qu'à partir de la 9i.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  9. #9
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut
    oki
    merci bcp laly pour l'info
    Il est vrai que last fonctionne en 8i mais j'avais pas penser à la fonction keep ;-) erreur de ma part.

    merci

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

Discussions similaires

  1. [AccessXP][SQL]Fonction NZ() et concaténation
    Par steelidol dans le forum Access
    Réponses: 3
    Dernier message: 08/10/2005, 18h27
  2. Réponses: 4
    Dernier message: 18/08/2005, 16h11
  3. Réponses: 5
    Dernier message: 13/07/2005, 10h03
  4. [PL/SQL] fonction et alter session
    Par aline dans le forum Oracle
    Réponses: 10
    Dernier message: 26/01/2005, 15h23
  5. [PL/SQL] Fonction qui retourne plusieurs valeurs
    Par Loko dans le forum Oracle
    Réponses: 2
    Dernier message: 07/12/2004, 09h43

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