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 :

toujours pb sql


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Par défaut toujours pb sql
    2 tables : personnes, actions

    tables personnes : (idPers, nomPers, prenomPers)
    tables developpement: (iddev, #idPers, datedev)

    La meme personne peut effectuer différents développement a différentes dates.

    Comment récupérer les idPers distinct de la table developpement qui sont dans la table personnes et en meme temps nomPers et prenomPers , sachant que ceux ci doivent etre trier par date decroissante (j'entends par la ne sélectionner que la plus récente) ... ?

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    KEEP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select iddev, 
    max(datedev) datedev, 
    max(idpers)keep(dense_rank first order by datedev desc,idpers) idpers,
    max(nompers)keep(dense_rank first order by datedev desc,idpers) nompers,
    max(prenompers)keep(dense_rank first order by datedev desc,idpers) prenompers
    from personnes, developpement
    where idpers=#idpers
    group by iddev

    edit: DESC

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Par défaut
    je suppose qu'elle doit fonctionner mais elle doit etre compatible mysql également ... merci pour la réponse en tout cas !

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Je ne pense pas que la requete de Laurent soit bonne, ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT idpers, 
    	MAX(datedev) datedev, 
    	MAX(nompers)KEEP(DENSE_RANK FIRST ORDER BY datedev DESC) nompers,
    	MAX(prenompers)KEEP(DENSE_RANK FIRST ORDER BY datedev DESC) prenompers
    FROM personnes, developpement
    WHERE idpers=#idpers
    GROUP BY idpers
    POur le faire compatbile avec mysql, je suis en train, je reposte

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

    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
    Billets dans le blog
    4
    Par défaut
    Arf.. en fait c'est tout simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT idpers, nomPers, prenomPers,
    	MAX(datedev) datedev
    FROM personnes, developpement
    WHERE idpers=#idpers
    GROUP BY idpers, nomPers, prenomPers

  6. #6
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    McM
    SELECT idpers, nomPers, prenomPers,
    	MAX(datedev) datedev
    FROM personnes, developpement
    WHERE idpers=#idpers
    GROUP BY idpers, nomPers, prenomPers
    Je ne pense pas qu'on puisse faire un MAX dans un selecte + autre sélection :
    Je m'explique : Select Max(champ1) from table ==> OK
    Seletc Max(champ1), champ2 from table ==> KO.

    A+
    LBO72.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/07/2010, 10h50
  2. fonction exists toujours vrai transact sql
    Par bobby51 dans le forum Développement
    Réponses: 6
    Dernier message: 27/03/2009, 11h09
  3. [SQL]trier un sous formulaire par une date (par toujours connue)
    Par blin07 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/04/2007, 09h45
  4. Pourquoi cette requête SQL ne marche pas toujours
    Par Platon93 dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 14/12/2006, 17h29
  5. SQL server et toujours des problèmes de dates ...
    Par constantin dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 28/10/2005, 12h19

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