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 :

Requête pour trouver le dernier indice visé par un client [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut Requête pour trouver le dernier indice visé par un client
    Bonjour à tous,

    voilà plusieurs jours que je sèche sur le problème suivant :

    J'ai une ancienne base à modifier pour permettre à l'utilisateur de sortir la liste des visas clients à l'indice le plus élevé, sachant que chaque client ne vise pas obligatoirement un indice en même temps que les autres.

    Plutôt qu'un (trop) long discours, j'ai mis un extrait de cette base en pièce jointe (au format .mdb) avec quelques données.

    Dans l’exemple fournit, on devrait avoir :

    Document 01
    Indice A – Client 2 – VSO – 28/08/09
    Indice B – Client 1 – VAO – 15/09/09

    Puisque le client 2 n’a pas encore visé l’indice B.
    Et que le client 1 à visé l'indice B (donc on affiche plus l'indice A pour lui)

    Si quelqu'un avait un début de piste, j'en serais grandement preneur.
    Merci d'avance et bon week-end.

    Curt

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    Je n'ai pas pu lire la base car je suis encore en version 2000

    Pour résoudre ce type de problème en général je crée une fonction globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function get_indice(client)
    Comme son nom l'indique cette fonction doit faire la requête qui va bien, ensuite elle peut être appelée dans n'importe quelle requete

    Ce n'est pas idéal en temps d'exécution mais ça évite les méga requêtes combinées...

  3. #3
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonjour Nico,

    j'ai passé la base en Access 2000 dans le 1er post.
    Merci pour l'aide

    Curt

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    essaie en ajoutant ceci à la fin de la requête
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE TblVisaclient.NumIndice=(SELECT Max(NumIndice) FROM TblVisaClient WHERE TblVisaClient.NumClient=TblClient.Id_Client)
    ici, la sélection est limitée à l'Indice le plus grand pointé par le client.

    Pour le Client2 l'indice le plus grand est le 1, et pour le client1 le 2.

  5. #5
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonjour Ilank,

    et là.... je dis RESPECT MONSIEUR !!!

    C'est rageant et en même temps encourageant de voir quelqu'un résoudre un problème insoluble pour moi depuis tout ce temps !!!

    Encore merci.
    Curt

  6. #6
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonsoir à tous,

    je relance ma question... Après avoir intégré la réponse de Ilank (merci à lui), je me rend compte que la requête ne fonctionne pas selon mes attentes.

    J'ai ajouté 1 document dans la base test et là.... c'est le drame ! J'obtiens non pas le dernier indice visé, mais le dernier visa. Dans l'exemple de la BD en pièce jointe, je devrais obtenir :

    Document 1
    Indice A - Client 2 - REF - 28/09/09
    Indice B - Client 1 - VAO - 15/09/09

    Document 2
    Indice A - Client 1 -VSOC - 03/10/09
    Indice B - Client 2 - REF - 03/10/09

    Et en fait, j'obtiens uniquement :

    Document 2
    Indice A - Client 1 -VSOC - 03/10/09
    Indice B - Client 2 - REF - 03/10/09

    puisque les dates (03/10/09) sont les dates "maxi"...

    Bref, j'ai encore besoin d'aide....

    Bonne soirée.
    Curt

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    remplace la clause WHERE par celle-ci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    WHERE TblVisaClient.DateVisaClient = 
    (SELECT Max(DateVisaClient)
      FROM TblIndice INNER JOIN TblVisaClient
     ON TblIndice.Id_Indice=TblVisaClient.NumIndice
     WHERE TblVisaClient.NumClient=TblClient.Id_Client
     AND TblIndice.NumDocument=TblDocument.Id_Document);

  8. #8
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonjour Ilank et surtout

    Merci pour la réponse matinale qui fonctionne parfaitement.

    Excellente journée.
    Curt

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

Discussions similaires

  1. [SQL] requête pour 1er et dernier résultat
    Par oim dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/07/2008, 12h48
  2. requête pour trouver les champs sans doublons
    Par kuhnden dans le forum Access
    Réponses: 2
    Dernier message: 28/03/2008, 18h34
  3. Requête pour trouver les derniers avec condition
    Par Philippe608 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/01/2008, 21h17
  4. requête pour trouver un mot dans une phrase
    Par FRIGAUX dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 25/11/2006, 22h18
  5. Réponses: 2
    Dernier message: 21/09/2006, 09h41

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