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 Access [Toutes versions]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Requête Access
    Bonjour,

    Pourriez-vous m'aider à améliorer cette requête de façon à renvoyer un résultat même lorsque la date de service fait n'est pas renseignée.

    Je m'explique :
    DateDemande : 02/02/2010
    FinPrevueLe : 05/02/2010
    ServiceFait : non renseignée
    Si j'entre 01/02/2010 comme date de début et 28/02/2010 comme date de fin, le résultat n'est pas comptabilisé alors que nous sommes le 26 soit une dérive de 21 jours (26 - 5).

    Je pense qu'il faut introduire une condition du genre si "ServiceFaitLe" n'existe pas alors c'est la date du jour qui lui est substitué. Hélas je ne sais pas faire !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Demandes.Responsable, Avg(([Demandes]![ServiceFaitLe]-[Demandes]![FinPrevueLe])) AS derive
    FROM Demandes
    WHERE (((Demandes.DateDemande) Between [Tapez la date de début] And [Tapez la date de fin]))
    GROUP BY Demandes.Responsable;
    Merci pour votre aide

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    En utilisant la fonction nz, ça devrait le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Responsable, Avg(nz([ServiceFaitLe], date)-[FinPrevueLe]) AS derive
    FROM Demandes
    WHERE DateDemande Between [Tapez la date de début] And [Tapez la date de fin]
    GROUP BY Responsable

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Euh...
    C'est peut être ça mais je bute sur un problème de parenthese !
    Plus précisement ça donnerait quoi ?

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 402
    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 402
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    Salut,

    tu as quoi comme sql pour ton problème de parenthèse ?

    Le sql de Kloun semble bon

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Parenthèse ?
    J'utilise Access 2007

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Demandes.Responsable, Avg(nz([Demandes]![ServiceFaitLe],Date)-[Demandes]![FinPrevueLe])) AS derive
    FROM Demandes
    GROUP BY Demandes.Responsable;
    J'ai l'erreur suivante :
    ) en trop dans l'expression "Avg(nz([Demandes]![ServiceFaitLe],Date)-[Demandes]![FinPrevueLe]))"

    Merci

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Il suffit de compter : 2 parenthèses ouvertes, 3 fermées.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup, je ne suis pas un as du sql mais en cherchant j'ai fini par trouver !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Demandes.Agent, Avg(nz([Demandes]![ServiceFaitLe],Date())-[Demandes]![FinPrevueLe]) AS derive
    FROM Demandes
    WHERE (((Demandes.DateDemande) Between [Tapez la date de début] And [Tapez la date de fin]))
    GROUP BY Demandes.Agent;

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

Discussions similaires

  1. Requête ACCESS
    Par Boys dans le forum Access
    Réponses: 7
    Dernier message: 25/11/2005, 16h22
  2. Réponses: 2
    Dernier message: 04/11/2005, 11h35
  3. Fusion requête Access 2003 vers document word
    Par davidf dans le forum Access
    Réponses: 2
    Dernier message: 17/06/2005, 13h46
  4. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  5. Convertir une requête Access en MySQL
    Par iomega dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/03/2004, 09h47

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