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 :

sql le dernier plus petit enregistrement


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut sql le dernier plus petit enregistrement
    Bonsoir,

    Je cherche à obtenir le dernier (qui a la date de mise à jour la plus grande) enregistrement qui correspond à ma recherche sans faire de group by max car nombres de valeurs d'attributs diverges de ligne en ligne donc le group by ne fonctionne pas.

    Je cherche une solution autre que de faire une sorte de select qui a pour condition (Id, Ma date) = le resultat du select max car ce select est très important du fait du nombre de jointure de table.

    Je cherche à faire autre chose que cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT  note, nom, prenom
    FROM   eleves
    WHERE  note=(SELECT MAX(note)
                  FROM eleves)
    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Avec une description de problème aussi vague, il est difficile de te faire une proposition.
    Pourrais-tu nous donner un exemple de ce que tu veux faire ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Bonjour,

    Je reformule, j'ai un select qui me renvoi plusieurs ligne pour un meme ID , il s'agit de contrat , j'ai un Id personne, un Id contrat et des dates de debut / fin.
    Je cherche à obtenir le contrat qui a la date de fin la plus récente.

    j'ai quelque chose comme cela pour le moment avoir avoir la date plus grande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Select personne_id, max(date_fin)  from maTableContrats Where .....   group by personne_id
    J'ai besoin de remonter Id du contrat et la date de debut du contrat qui correspondent à ce dernier contrat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Select personne_id, contrat_id, date_debut, max(date_fin)  from maTableContrats Where .....  group by personne_id, contrat_id, date_debut
    Ne me renvoi plus et c'est logique la ligne qui a la date de fin de contrat la plus récente mais toutes les lignes.

    J'ai vu qu'il me faudrait faire qq chose comme cela avec une sous requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select personne_id, contrat_id, date_debut, date_fin
    from maTableContrats
    Where date_fin = (Select max(date_fin)  from maTableContrats Where ....     group by personne_id)
    Avec les jointures qui vont bien.

    Je trouve cette méthode un peu lourde car je vais obtenir une requête assez conséquente du fait une sous requête et requête impliquant beaucoup de jointure. Le résultat devrait fonctionner mais ne sera pas facile à maintenir.

    je me demande s'il n'y a pas une autre méthode

    Merci à vous

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Peut être trouverez vous votre bonheur ici : https://www.developpez.net/forums/bl...tere/#comments

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Merci.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par shaun_the_sheep Voir le message
    J'ai besoin de remonter Id du contrat et la date de debut du contrat qui correspondent à ce dernier contrat.
    J'utiliserais first last dans leurs versions agrégées.
    FIRST et LAST

Discussions similaires

  1. [MySQL] [sql] le code ne veut plus rien enregistrer
    Par schats dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 03/03/2009, 13h07
  2. Comment afficher les nième plus petits enregistrements
    Par nomade333 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/01/2009, 02h55
  3. Requête SQL- ressortir le plus récent enregistrement
    Par shirya dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/05/2008, 21h38
  4. [SQL] Sélectionner la plus petite valeur
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/04/2007, 10h36

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