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 :

Besoin d'aide pour une requête sous Access


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Bonjour a tous,
    Je créé une petite BDD avec Access. Et j'ai besoin d'aide pour une requête qui me permettra d'afficher de les personnes qui ont six mois d'impayé consécutif. Et afficher automatiquement exclu devant leur nom

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    As tu déjà quelque chose sous la main? quels sont les tables et les champs que tu manipules? bref on ne saurait t'aider si on a rien comme information de ton projet.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Deux tables, Adhérents et cotisations.
    Table Adhérents :
    Id_mem
    nom,
    prénom,
    fonctions,
    date_adhésion
    Table cotisations :
    Id1
    Mois cotisations
    Date paiement
    Montant
    Situation (payé ou impayé)

    La cotisations mensuelle est de 1000 €

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Si un adhérents a six mois d'impayé consécutif, il est exclu. Voilà la requête Access pour lequel j'ai besoin d'aide.

  5. #5
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Petit remarque: pas de relation entre les deux tables. Il faut donc ajouter Id_mem dans la table Cotisation. tu pourras faire de celui-ci un menu déroulant pour faciliter l'enregistrement des cotisations.

    Tu vas créer trois petites requêtes en supposant que dans la situation mensuelle d'un adhérent vous mentionnez "impayé" ou "payé" chaque mois.
    R1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Adherants.nom, Adherants.prenom, cotisations.situation
    FROM Adherants INNER JOIN cotisations ON Adherants.Id_mem = cotisations.id_mem 
    WHERE (((cotisations.situation))="impayé");
    R2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT R1.nom, R1.prenom, Count(R1.situation) AS V 
    FROM R1
    GROUP BY R1.nom, R1.prenom;
    R3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT R2.nom, R2.prenom, R2.V, IIf([V]>=6, "exclu", "") AS D 
    FROM R2
    GROUP BY R2.nom, R2.prenom, R2.V;

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Merci infiniment. Que dieu te bénisse.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    La troisième requête compte le nombre d'impayé qu'il soit consécutif ou aléatoire. Sauf qu'il faut six impayés consécutif. Si de façon aléatoire le membre n'est pas exclu.

    Comment prendre en compte que les " impayés " consécutif seulement.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Exemple 1 :
    ".
    1- Jean pampidou / impayé
    2- Jean pampidou / impayé
    3 - Jean pampidou / payé
    4 - Jean pampidou / impayé
    5 - Jean pampidou / impayé
    6 - Jean pampidou / impayé
    7 - Jean pampidou / impayé

    Dans ce cas nous avons 6 "impayés Puis que les 6 "impayés" ne sont pas consécutif. Le membre n'est pas "exclu".

    Exemple 2:

    1- Jean pampidou / payé
    2- Jean pampidou / impayé
    3 - Jean pampidou / impayé
    4 - Jean pampidou / impayé
    5 - Jean pampidou / impayé
    6 - Jean pampidou / impayé
    7 - Jean pampidou / impayé
    8 - Jean pampidou / payé

    Dans ce cas nous avons 6 "impayés" consécutifs. Le membre est exclu.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Ma préoccupations concerne l'exemple 2. Je ne sais pas comment fait pour que la requête prenne en compte que le cas 2. C'est-à-dire les "impayés" 6 fois d'affilées

  10. #10
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Une fonction VBA pourrait t'aider. Tu peux t'inspirer de ceci : https://www.developpez.net/forums/d1...-consecutives/

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut besoin d'aide
    Bonjour Bertiny;

    j'ai pu regardé le lien que tu m'a envoyé mais je ne comprends (ce n'est claire).
    peux-tu s'il te plait m'aider.

    merci

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 410
    Points : 19 984
    Points
    19 984
    Billets dans le blog
    66
    Par défaut
    Bonjour à tous,

    Pour compléter les propositions de bertiny, on va reprendre les 2 premières requêtes :

    Pour simplifier les calculs je prends les indices des mois (1,2,3...12), pour le champ [Mois cotisations].

    R1:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Adherent.Id_mem, Adherent.nom, Adherent.prenom, Cotisations.[Mois cotisations], Cotisations.Situation, (select Max([Mois Cotisations]) from Cotisations as T where (T.id_mem=Adherent.id_mem)  and (T.Situation="Impayé") and (T.[Mois Cotisations]<Cotisations.[Mois Cotisations])) AS Precedent
    FROM Adherent INNER JOIN Cotisations ON Adherent.Id_mem = Cotisations.id_mem
    WHERE (((Cotisations.Situation)="Impayé") AND (((select Max([Mois Cotisations]) from Cotisations as T where (T.id_mem=Adherent.id_mem)  and (T.Situation="Impayé") and (T.[Mois Cotisations]<Cotisations.[Mois Cotisations])))=[Mois cotisations]-1)) OR ((((select Max([Mois Cotisations]) from Cotisations as T where (T.id_mem=Adherent.id_mem)  and (T.Situation="Impayé") and (T.[Mois Cotisations]<Cotisations.[Mois Cotisations]))) Is Null));

    Le champ précédent renvoie l'indice du mois précédent, la requête ne retient que les impayés qui se suivent mensuellement ([precedent]=[Mois cotisations]-1) ou ([precedent] est null)


    R2:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT R1.Id_mem, R1.nom, R1.prenom, Count(R1.situation) AS V
    FROM R1
    GROUP BY R1.Id_mem, R1.nom, R1.prenom
    HAVING (((Count(R1.situation))>=6));

    On retient, en se basant sur R1, uniquement les adhérents qui ont 6 ou + de 6 impayés consécutifs.

    Autre possibilité pour R2, sans avoir recours au champ Precedent , on peut aussi compter le nombre d'impayés et le comparer à la différence entre le dernier et le premier mois +1:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT R1.Id_mem, R1.nom, R1.prenom, Count(R1.[Mois Cotisations]) AS nbre
    FROM R1
    GROUP BY R1.Id_mem, R1.nom, R1.prenom
    HAVING (((Count(R1.[Mois Cotisations]))>=6 And (Count(R1.[Mois Cotisations]))=(Max([Mois Cotisations])-Min([Mois Cotisations])+1)));

    Cdlt,

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    La première requête à l'exécution indique erreur de syntaxe. A partir de la première ligne. Peux-tu regarder Stp.

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Salut User,

    J'ai essayé d'exécuter la première requête. Mais un message d'erreur s'affiche.
    (Sélect Max(Mois cotisations).......

    J'ai même dû créer un champ Mois avec les chiffre (1, 2, ....., 12). Mais toujours rien.

    Peux-tu l'éclairer davantage.? Merci

  15. #15
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Je n'ai vu qu'une petite erreur de majuscules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Adherent.Id_mem, Adherent.nom, Adherent.prenom, Cotisations.[Mois Cotisations], Cotisations.Situation, (select Max([Mois Cotisations]) from Cotisations as T where (T.id_mem=Adherent.id_mem)  and (T.Situation="Impayé") and (T.[Mois Cotisations]<Cotisations.[Mois Cotisations])) AS Precedent
    FROM Adherent INNER JOIN Cotisations ON Adherent.Id_mem = Cotisations.id_mem
    WHERE (((Cotisations.Situation)="Impayé") AND (((select Max([Mois Cotisations]) from Cotisations as T where (T.id_mem=Adherent.id_mem)  and (T.Situation="Impayé") and (T.[Mois Cotisations]<Cotisations.[Mois Cotisations])))=[Mois Cotisations]-1)) OR ((((select Max([Mois Cotisations]) from Cotisations as T where (T.id_mem=Adherent.id_mem)  and (T.Situation="Impayé") and (T.[Mois Cotisations]<Cotisations.[Mois Cotisations]))) Is Null));
    En supposant bien sûr que ton champ s!'appelle [Mois Cotisations] et non [Mois cotisation].
    Il est souvent préférable de nommer les champs composé en les reliant par _
    cordialement.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Merci à tous. User, bertiny .
    J'ai pu voir mon erreur grâce vos contributions. Merci infiniment.

    Que Dieu vous bénisse.

  17. #17
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    N'oublis pas de mettre la discussion à "Résolu"

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour une requête sous Access
    Résolu. Encore merci

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonjour olyvares1,
    pour marquer la discussion résolu il y a un bouton fait pour çà : il faut juste cliquer dessus.

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Une aide pour une requête Access
    J'ai une table de gestion de cotisations et j'ai besoin d'aide pour une requête qui me permettra de déterminer le nombre de mois entre la dernière date de cotisation payée et la date à ce jour. J'ai fait ce qui suit mais ça ne marche pas.
    Mois([Maintenant ())- Mois([période])

    Plutôt que la dernière date, il effectue le calcul avec la date de la première cotisations.
    ID Noms Montant Période
    1 Jean 500 05/01/17
    2 Luc 800 09/01/17
    3 Jean 200 11/03/17

    Je voudrais que ma requête utilise dans le cas de Jean la dernière date (11/03/17) pour le calcul.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Besoin d'aide pour une requête de MAJ (modif. de car.)
    Par ptitscrat dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 17h27
  2. besoin d'aide pour une requête
    Par lipao17 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/01/2006, 16h55
  3. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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