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 :

Compter le nombre de criteres suivant liste de jours


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut Compter le nombre de criteres suivant liste de jours
    Bonsoir,
    Sous access j'ai deux tables
    une table calendrier avec une colonne date et une colonne statut
    pour chaque date de l'année j'ai soit le statut "T" pour travaillé soit le statut "PT" pour pas travaillé

    dans une seconde table j'ai deux colonnes : date début et date fin
    j'ai fait une requête avec comme résultat la différence entre date début et date fin.
    Ce que je voudrais obtenir dans cette même requête c'est
    Date début | Date fin | différence | somme du nombre de PT
    Autrement dit pour chaque ligne de la seconde table faire la somme sur la période comprise entre date début et date fin, du nombre de jour "pas travaillé"
    C'est possible ?

  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

    A priori ça doit ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dcount("*","calendrier","jour>=" & date_deb & " and jour<=" & date_fin)
    ou c'est plus lisible comme ça :
    select count(*) from calendrier where jour>=date_deb and jour<=date_fin
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    Merci Nico84,
    En fait le résultat est unique dans ta proposition.
    Ce qu'il faudrait (si cela est possible) c'est un résultat dans ce genre là :
    Donc mes deux tables :
    1ère table : Calendrier
    2 champs : Date et statut
    Date : Toutes les dates du 01/01/2010 au 31/12/2015
    Statut : soit T pour jour travaillé ou PT pour jour non travaillé

    2ème table : Data
    2 champs : date_début et date_fin
    Date début : date de confirmation de l'OT (ordre de transfert)
    Date_fin : date de l'extraction

    Résultat dans une requête :
    Compter la différence en nombre de jour (ça c'est facile date_fin - date_début) et compter pour chaque ligne de la table Data le nombre de jour non travaillé

    Exemple :
    table Calendrier :
    Date | Statut
    01/01/2010 | PT
    02/01/2010 | T
    03/01/2010 | T
    04/01/2010 | PT
    05/01/2010 | PT
    06/01/2010 | T

    table DATA :
    Date_début | Date_fin
    01/01/2010 | 03/01/2010
    01/01/2010 | 04/01/2010
    02/01/2010 | 04/01/2010
    03/01/2010 | 06/01/2010

    Résultat dans la requête :
    Date_début | Date_fin | Différence | Nombre de jour PT
    01/01/2010 | 03/01/2010 | 2 | 1
    01/01/2010 | 04/01/2010 | 3 | 2
    02/01/2010 | 04/01/2010 | 2 | 1
    03/01/2010 | 06/01/2010 | 3 | 2

  4. #4
    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
    c'est bien ce que j'avais compris mais il est possible de mettre "mon" select dans un autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select data.*, (select count(*) from calendrier where satut='PT' and jour>=data.date_deb and jour<=data.date_fin) as nb_pt from data
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre régulier Avatar de totor92290
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 418
    Points : 102
    Points
    102
    Par défaut
    Un grand grand grand merci.... !!!!

    cela fait plus de trois jours que je suis dessus !!!!!

    Bonne journée.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/09/2019, 22h36
  2. compter le nombre de listes déroulantes
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/01/2008, 16h13
  3. [fonction]compter le nombre d'element répondant aux criteres
    Par nejisama8 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 16/05/2007, 16h49
  4. Réponses: 2
    Dernier message: 06/05/2007, 23h43
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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