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 sélection date [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut Requête sélection date
    Bonjour,

    J'aurais besoin d'un conseil pour créer une requête.

    J'ai des contrat d'entretien comprenant de une à six visites annuelles.
    Dans mes fiches clients j'ai créer des champs (Date V1, Date V2, etc) qui prévoient les dates auxquels ces entretien doivent avoir lieu :
    Date V1 1/01/2012
    Date V2 1/06/2012 etc...
    Pour chaque champ j'ai une case à cocher (C-V1, C-V2, etc) et lorsque par exemple l'entretien n°1 à été réalisé, je coche la case C-V1 et la date est augmenté d'une année (1/01/2012 devient 1/01/2013).

    J'aimerais créer une requête et ensuite un formulaire qui me listerait tous les entretien que je dois réaliser en janvier de l'année N, en février de l'année N etc... et si la case à cocher C-V1, C-V2 etc... est cochée que ces entretiens n'apparaissent plus.
    En revanche s'ils n'ont pas été réalisés le mois prévus (janvier par exemple), qu'ils soient reportés sur la liste du mois suivant.

    J'ai déjà créer des requêtes où je saisi le mois et l'année pour sélectionner ma demande, mais là j'ai de une à six dates donc je ne sais pas comment faire.

    Si quelqu'un à une idée à me proposer je suis preneur...

    Cordialement,

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Maringot,

    Il y a, de base, un problème de conception qui, à terme, te donnera bien d'autres soucis...

    D'après ce que j'ai compris,
    Citation Envoyé par Maringot
    Dans mes fiches clients j'ai créer des champs (Date V1, Date V2, etc) qui prévoient les dates auxquels ces entretien doivent avoir lieu .../... Pour chaque champ j'ai une case à cocher (C-V1, C-V2, etc) .../...
    ==> Table actuelle :
    Client(Id_Client, Nom, Date-V1, C-V1, Date-V2, C-V2, Date-V3, C-V3, Date-V4, C-V4, Date-V5, C-V5, Date-V6, C-V6, ...)

    Il eu été plus judicieux de créer les tables suivantes :
    Client(Id_Client, Nom, ...)
    Visite(#Id_Client, Date_Visite, Visite_Effectuee, Observations (peut-être), ...)

    Relation
    Client 1---∞ Visite, via Id_Client.

    Cela te permettrait d'obtenir toutes tes dates dans la même table et, en plus, de conserver un historique de tes visites (choses impossible, en l'état). Par conséquent, tes requêtes s'en trouveraient plus aisées à concevoir.

    D'autre part, je pense que les dates de visites se situent au niveau du contrat d'entretien, et non au niveau du client, mais c'est une autre histoire...

    Sinon, si tu ne peux/veux pas modifier la structure de ta base, ta problématique objet de ce fil sera résolue par des VraiFaux() imbriqués et/ou des requêtes intermédiaires.

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 777
    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 777
    Points : 58 179
    Points
    58 179
    Billets dans le blog
    42
    Par défaut
    Bonjour,

    on doit pouvoir arriver à ses fins avec cette syntaxe un peu particulière pour chercher un mois précis parmi les 6 dates:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * FROM LaTable
     WHERE "12/2011" IN 
    (
          format([DateV1], "mm/yyyy"),
          format([DateV2], "mm/yyyy"),
          format([DateV3], "mm/yyyy"), 
          format([DateV4], "mm/yyyy"), 
          format([DateV5], "mm/yyyy"),
          format([DateV6], "mm/yyyy")
    ) ;
    à adapter, mais avec une table des visites :
    Visite(idVisite, #idClient, DateVisite, StatutVisite={prévue, en cours, reportée, effectuée, …}),
    la requête pour obtenir le même résultat devient élémentaire, performante sans pour autant demander des efforts démesurés au niveau du formulaire et ses cases à cocher (à mon avis):
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idClient FROM Visite WHERE format([DateVisite], "mm/yyyy")="12/2011" AND StatutVisite="prévue";

    à+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Effectivement c'est plus simple et plus logique de créer une autre table et ç fonctionne mieux, maintenant je vais le peaufiner.

    Merci de votre aide,
    Maringot

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

Discussions similaires

  1. [WD17] Requête sélection date max
    Par tun_01 dans le forum WinDev
    Réponses: 1
    Dernier message: 10/04/2014, 15h34
  2. [AC-2010] Requête sélection avec date + durée.
    Par Mat08 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/02/2012, 21h40
  3. Requête avec date comme critère de sélection
    Par deep-diver dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/09/2006, 11h40
  4. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 16h11
  5. Sélection date la + récente
    Par tonton54 dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/04/2004, 11h30

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