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 entre champs date de 2 table [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Requete entre champs date de 2 table
    Bonjour,

    Je suis pris au piégé avec une requête somme toute simple mais qui me pose problème.

    Voici le code de la requete sans Where :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCTROW Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin],
    Colab_Temps.Date, Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation], Sum(Colab_Temps.Heure) AS [Somme De Heure]
     
    FROM (Colab_Base INNER JOIN Colab_Temps ON Colab_Base.[Code Collab] = Colab_Temps.[Code Collab])
    INNER JOIN Colab_Taux_salarie ON Colab_Base.[Code Collab] = Colab_Taux_salarie.[Code colab]
     
    GROUP BY Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin], Colab_Temps.Date, Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation];

    Je n'arrive pas a faire en sorte de conditionné le champs taux par date.
    Je m'explique J'ai 2 table,
    Table Colab_Taux_salarie qui affiche Code Colab, Date debut, Date fin, Taux
    Table Colab_Temps qui affiche Code colab, code Client, Code mission, Code Prestation, Date, Heure

    Mon but et de lié le taux présent dans la 1er table aux temps effectué dans la seconde.
    Le taux bouge souvent (3-4 fois par ans), il y a donc plusieurs ligne de taux pour un même collaborateur.

    J'ai essayé
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Where Colab_Temps.Date Between Colab_Taux_salarie.[Date debut] And Colab_Taux_salarie.[Date fin]
    , mais access me dit opérateur non renseigné

    Merci de votre aide.

    Je précise que la finalité de cette requête et d'imprimé un état récapitulant les heure passé par client-missions-Prestation-Colab, afin d'établir la rentabilité de chaque missions.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 265
    Points
    34 265
    Par défaut
    Hello,

    ne JAMAIS donne un nom Date a un champ, ca cause toujours une palanquee d'escadrilles d'emmerdes

    Colab_Temps.[Date]
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci de votre reponse.

    Je ne savais pas pour le nom "Date" de champs étant des dates.

    Malgré la correction apporter

    "Erreur de syntaxe (opérateur absent) il me surligne Colba_Temps_[date]

    Merci.

    Ps : Champs renommé en : Colab_Temps.[Date Travaux]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je me permet de signaler que je n'ai pas trouvé de solution.

    Si quelqu'un a une idée je suis preneur pour résoudre ou contourné le problème.

    Cordialement.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    peux-tu nous poster le code complet de ton sql ?
    Merci.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Le code précédent est le code complet de ma requête.

    Car je n'arrive pas a integrer le Where qui doit faire correspondre les 2 dates.

    Cordialement.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCTROW Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin],
    Colab_Temps.Date, Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation], Sum(Colab_Temps.Heure) AS [Somme De Heure]
     
    FROM (Colab_Base INNER JOIN Colab_Temps ON Colab_Base.[Code Collab] = Colab_Temps.[Code Collab])
    INNER JOIN Colab_Taux_salarie ON Colab_Base.[Code Collab] = Colab_Taux_salarie.[Code colab]
     
    GROUP BY Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin], Colab_Temps.Date, Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation];
    et où est la clause WHERE ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Justement la est mon problème, j'ai essayé plusieurs where mais aucun ne fonctionne et indique opérateur non renseigné.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Where Colab_Temps.[Date Travaux] Between Colab_Taux_salarie.[Date debut] And Colab_Taux_salarie.[Date fin]

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Ma question est pourtant simple : peux-tu poster le code AVEC ta clause WHERE ?

    Merci.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Non je ne peux pas car je n'ai pas réussi à en intégrer une.

    Mon problème est la, les clauseq Where que j'ai essayé de faire m'indique toutes : "opérateur absent".

    Donc non je ne peux pas poser mon code avec une clause where car je n'ai pas de clause where qui fonctionne.

    C'est la d’ailleurs la raison de ce post. Vous demander de l'aide sur cette cause where que je n'arrive pas a faire.

    Je n'arrive pas a faire en sorte de conditionné le champs taux par date.
    Je m'explique J'ai 2 table,
    Table Colab_Taux_salarie qui affiche Code Colab, Date debut, Date fin, Taux
    Table Colab_Temps qui affiche Code colab, code Client, Code mission, Code Prestation, Date travaux, Heure

    Mon but et de lié le taux présent dans la 1er table aux temps effectué dans la seconde.
    Le taux bouge souvent (3-4 fois par ans), il y a donc plusieurs ligne de taux pour un même collaborateur.
    Merci de votre aide.

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    si tu veux de l'aide fais au minimum ce que l'on te demande.
    Tu as pu poster cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCTROW Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin],
    Colab_Temps.Date, Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation], Sum(Colab_Temps.Heure) AS [Somme De Heure]
     
    FROM (Colab_Base INNER JOIN Colab_Temps ON Colab_Base.[Code Collab] = Colab_Temps.[Code Collab])
    INNER JOIN Colab_Taux_salarie ON Colab_Base.[Code Collab] = Colab_Taux_salarie.[Code colab]
    ' et normalement la clause WHERE est ICI 
    GROUP BY Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin], Colab_Temps.Date, Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation];
    Alors, refais-le en ajoutant la clause WHERE au même endroit que dans ton code qui provoque l'erreur.
    Sans cela, je le répète, on ne peut pas t'aider.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour

    Je cite mon premier post.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT DISTINCTROW Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin],
    Colab_Temps.[Date travaux], Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation], Sum(Colab_Temps.Heure) AS [Somme De Heure]
     
    FROM (Colab_Base INNER JOIN Colab_Temps ON Colab_Base.[Code Collab] = Colab_Temps.[Code Collab])
    INNER JOIN Colab_Taux_salarie ON Colab_Base.[Code Collab] = Colab_Taux_salarie.[Code colab]
     
    Where Colab_Temps.[Date travaux] Between Colab_Taux_salarie.[Date debut] And Colab_Taux_salarie.[Date fin]
     
    GROUP BY Colab_Taux_salarie.[Code colab], Colab_Taux_salarie.Taux, Colab_Taux_salarie.[Date debut], Colab_Taux_salarie.[Date fin], Colab_Temps.[Date travaux], Colab_Temps.[Code Client], Colab_Temps.[Code Mission], Colab_Temps.[Code Prestation];

    Merci de votre aide.

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Ton code est correct du point de vue syntaxique, je ne vois pas pourquoi tu as le message 'operateur absent'. Est-ce une requète construite dans l'environnement VBA ou depuis le menu création de requêtes ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    La requête est construite par l’assistant requête.

    J'ai uniquement ajouté le where.

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Comment est lancé la requête : depuis une macro, un bouton de formulaire ou depuis le menu Access ?
    Es-tu en train de créer cette requête ou existait-elle déjà ?
    Peux-tu imprimer le message d'erreur tel qu'il apparait ?

    Au mieux, serait-il possible d'avoir une copie de ta base avec des données "anonymisées" et contenant les tables et la requête ?
    Merci.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Membre à l'essai
    Homme Profil pro
    Collaborateur comptable / Gestion informatique
    Inscrit en
    Septembre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Collaborateur comptable / Gestion informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    En répondant a votre message, je vient de résoudre le problème.

    Lors de mes test j'avais simplement mis le WHere apres le group By et non avant.

    Merci de votre aide.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    .... Et donc, tu comprends maintenant pourquoi je te demandai de poster le code complet ...
    Bonne continuation.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. Problème sur une requete avec champ date
    Par islande dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2006, 19h39
  2. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16
  3. Requete sur champ DATE MySQL
    Par tom06440 dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/09/2006, 17h45
  4. requete entre 2 dates
    Par 18Marie dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/08/2006, 10h44
  5. requete entre 2 dates
    Par 18Marie dans le forum JDBC
    Réponses: 9
    Dernier message: 31/07/2006, 18h10

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