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

Requêtes et SQL. Discussion :

[requete] recupérer enregistrement plus recent


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Points : 71
    Points
    71
    Par défaut [requete] recupérer enregistrement plus recent
    Bonjour à tous,

    J'ai deux tables en relation un-à-plusieurs :
    [table1]-1-------8-[table2]

    La table 2 contient différentes versions des contrats du client contenu dans la table1.

    Or, je souhaite connaitre à tout instant la version la plus recente du contrat d'un client. Et j'ai absolument besoin que dans ma requete, seule la version du contrat la plus récente apparaisse.

    En clair, si j'ai un client Toto dans la table 1, il va avoir par exemple deux version de son contrat, une de l'an dernier, et une de cette année. Dans une requete toute bete, j'aurais deux lignes avec mon client sur chaque et les 2 versions d emon contrat. Moi je ne veux que s'affiche dans ma requete que la version la plus recente.

    Je pensais a la fonction max, mais elle ne semble pas permettre ce que je veux faire ... Merci d'avance pour votre aide !!

  2. #2
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,
    si dans ta table contrat tu as une date du contrat (ce qui me parait logique) tu peux facilement utliser max(date)

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Points : 71
    Points
    71
    Par défaut
    Oui en effet ... Sauf que j'ai plusieurs client ... Du coup, le max(Date) va me sortir la ligne du client dont le contrat est le plus recent. Alors que je veux le contrat le plus recent pour chaque client !

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    tu regroupes par client ...

  5. #5
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    avec une requête regroupement tu peux facilement prendre le max date pour chaque client indépendemment

  6. #6
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Points : 71
    Points
    71
    Par défaut
    Ben ... je vois pas comment ...

    Dans la requete en mode graphique, j'ai tous mes champs, et quand je rajoute la fonction de regroupement, il m'ajoute une nouvelle ligne "opération" dans laquelle je dois choisir une action (regroupement, max, etc ...). Donc je met max pour la date d'accord, regroupement pour les champs de ma table client ok, mais pour les autres champs de ma table contrat, qu'est ce que je mets ?

  7. #7
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    rien.

    En fait, il te faut 2 Requêtes:
    Une avec un MAx de Date et un regroupement de client, basée sur contrats seulement (ca suffira)

    une autre basée sur client, contrat, et la requête précédente.
    et tu relies contrat avec la requête précédente, sur les 2 champs (cli/date)

  8. #8
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Points : 71
    Points
    71
    Par défaut
    A ouais d'accord ...

    pas con !! 8)

    Ca marche, nickel, Merci !

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

Discussions similaires

  1. [2.x] requete queryBulder sur date plus recente
    Par chlock62 dans le forum Symfony
    Réponses: 3
    Dernier message: 22/01/2015, 17h28
  2. [11gR2] Extraire les enregistrements dont la date est la plus recente
    Par gold15 dans le forum Débuter
    Réponses: 3
    Dernier message: 04/11/2014, 18h20
  3. Recuperer l'enregistrement le plus recent
    Par jubourbon dans le forum Développement
    Réponses: 5
    Dernier message: 10/11/2009, 15h57
  4. Requete:le moyen de selectionner la date la plus recente
    Par vincefop dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/08/2008, 10h05
  5. [MySQL] l'enregistrement le plus récent
    Par unmulot dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/07/2006, 11h06

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