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 :

Créer une requête Regroupement [Toutes versions]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Points : 30
    Points
    30
    Par défaut Créer une requête Regroupement
    Bonjour,
    J'ai un soucis pour la création d'une requête, dans laquelle je ne voudrais voir apparaître que l'enregistrement de chaque client pour la période la plus récente, mais également certaines information de cet enregistrement, tel que Nr Fiche et l'état.

    J'ai cette table:
    Nr_Fiche, Client, Période, Etat
    qui contient par ex.:
    123, Durant, 201301, -1
    135, Durant, 201302, 0
    146, Muller, 201301, -1
    140, Muller, 201302, -1
    124, Jacob, 201301, 0
    ...

    J'aimerais ce résultat:
    135, Durant, 201302, 0
    140, Muller, 201302, -1
    124, Jacob, 201301, 0

    Je vous remercie pour votre aide
    Amicalement
    Charles

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    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 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Il faut mettre une condition sur la date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from matable 
    where madate=dmax("madate","matable","monid=" & monid)
    Toutefois s'il y en a 2 à la même date on aura un doublon...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Points : 30
    Points
    30
    Par défaut
    Merci Nicolas,

    C'est bien ce que je cherche.
    Mais je ne comprends pas le critère ("monid=" & monid) de cette requête.
    Sans cet argument, j'obtiens bien la liste voulue.

    Bonne journée
    Charles

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 722
    Points : 57 379
    Points
    57 379
    Billets dans le blog
    42
    Par défaut
    bonjour,

    ça marche si la date la plus récente est la même pour tous les clients, sinon il faut synchroniser par rapport au client avec le critère:

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "client=""" & client & """"

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Points : 30
    Points
    30
    Par défaut
    Merci Fabien pour ces explications.

    Est-il possible que cette requête ne fonctionne pas en VBA ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_Test WHERE Period=DMax("Period","TBL_Test","Client=""Dupont""");")
    Après la validation de cette ligne de code, j'obtiens le message suivant
    Erreur de compilation
    Attendu : séparateur de liste ou )

    et le mot Period de la fonction DMax est en surbrillance.

    J'utilise Access 2010.

    Merci pour votre aide
    Charles

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 722
    Points : 57 379
    Points
    57 379
    Billets dans le blog
    42
    Par défaut
    un problème avec les guillemets "", c'est toujours problématique ce truc.

    Mais pourquoi 'Dupont' en particulier ?

    Cette requête peut retourner les enregistrements d'autres clients que Dupont à partir du moment ou la date coïncide avec l'enregistrement le plus récent de Dupont

    c'est vraiment ce que tu souhaites ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Points : 30
    Points
    30
    Par défaut
    Merci pour ce complément d'infos.

    Maintenant j'ai compris comment fonctionne cette fonction.
    Et j'obtiens exactement le résultat désiré, soit la liste de tous les clients avec la dernière date.

    Bonne soirée
    Charles

  8. #8
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    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 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Par chance le select accepte indifféremment " et ' donc on peut écrire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_Test WHERE Period=DMax('Period','TBL_Test','IdClient=' & IdClient);")

    Par contre si le client est en texte on n'échappe pas au '''

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Points : 30
    Points
    30
    Par défaut
    Merci Nicolas,

    Problème résolu.

    Vous êtes géniaux

    Bonne journée
    Charles

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

Discussions similaires

  1. Créer une requête statistiques
    Par MARCO63 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/01/2008, 22h47
  2. créer une requête pour regrouper par mois
    Par kuhnden dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 26/01/2008, 13h41
  3. Réponses: 31
    Dernier message: 24/08/2006, 12h13
  4. [ABAP] Comment créer une requête avec jointure
    Par roadster62 dans le forum SAP
    Réponses: 1
    Dernier message: 21/02/2006, 16h04
  5. [HTTP]Créer une requête http multipart/related
    Par jothi35 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/04/2005, 15h32

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