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 :

Calculs par tranches d'âge


Sujet :

Requêtes et SQL.

  1. #21
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    j'obtiens le message suivant :
    "Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée « Age » comme une partie de la fonction d'agrégat."
    il ne faut pas mettre Age dans la sélection puisque on fait un comptage sur ce champ et l'espace devant "moins" dans " moins de 18 ans" n'avait pas été enlevé. Ci-dessous, le code mis à jour. Merci de ne rien y ajouter ...
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course]
    , Usagers.Sexe
    , Switch(age<18,"moins de 18 ans",age Between 18 And 20,"entre 18 et 20 ans",age Between 21 And 30,"entre 21 et 30 ans",age Between 31 And 40,"entre 31 et 40 ans",age Between 41 And 50,"entre 41 et 50 ans",age Between 51 And 60,"entre 51 et 60 ans",age Between 61 And 70,"entre 61 et 70 ans",age Between 71 And 80,"entre 71 et 80 ans",age Between 81 And 90,"entre 81 et 90 ans",age Between 91 And 100,"entre 91 et 100 ans",age>100,"101 ans et plus") AS trancheAge
    , Count([Usagers].[N° Usager]) AS CpteParTrchAge
    FROM [Age Usagers Fonction Usagers Présent] INNER JOIN (Usagers INNER JOIN ([Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee] INNER JOIN Courses ON [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course] = Courses.[N° Course]) ON Usagers.[N° Usager] = Courses.[N° Usager]) ON [Age Usagers Fonction Usagers Présent].[N° Usager] = Usagers.[N° Usager]
    WHERE (((Courses.[Date de la course]) Is Not Null))
    GROUP BY [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course]
    , Usagers.Sexe
    , Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus")
    ORDER BY Usagers.Sexe;
    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 ?

  2. #22
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    J'utilise ce dernier code que tu m'as transmis dans la requête.
    En l'exécutant j'obtiens le message :
    "Type de données incompatible dans l'expression du critère"
    Merci de m'aider encore

  3. #23
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    ce message concerne un type de données d'une table, je n'y peut pas grand chose sans connaitre le type de chaque champ des tables utilisées.
    Aurais-tu la possibilité de poster une copie de la base avec les tables vides et les requêtes éventuelles utilisées dans la requête finale ?
    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 ?

  4. #24
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    Excuse le temps mis à répondre à ta demande. J'ai conduis ma femme chez le dentiste et au retour j'ai eu la visite de son fils.
    Voici une vue d'ensemble de la base avec les tables vides
    Nom : Vue d'ensemble de la base de données Téléservice - Permanence téléphonique.jpg
Affichages : 646
Taille : 315,7 Ko

    Voici une vue d'ensemble de la requête pour le calcul par tranches d'age
    Nom : Stat 17 Calcul Tranches Age.jpg
Affichages : 764
Taille : 222,8 Ko

    Voici la requête "Age Usagers Fonction Usagers Présent"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Carte Usager].Année, [Carte Usager].[Date Paiement], [Carte Usager].Dispense, Usagers.Nom, Usagers.Prénom, Usagers.[Rue et numéro], Usagers.[Code Postal], Usagers.Localité
    FROM Usagers INNER JOIN [Carte Usager] ON Usagers.[N° Usager] = [Carte Usager].[N° Usager]
    WHERE ((([Carte Usager].Année)=2019) AND (([Carte Usager].[Date Paiement]) Is Null) AND (([Carte Usager].Dispense) Is Null) AND ((Usagers.Nom)>="ELJIYARI"))
    ORDER BY Usagers.Nom;
    Voici la requête " Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Courses.[N° Course]
    FROM Courses
    WHERE (((Courses.[N° Course]) Between 2018000000 And 2018500000));
    J'espère avoir satisfait à ta demande et je reste à ta disposition pour tout complément d'information.
    D'avance merci

  5. #25
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    J'espère avoir satisfait à ta demande et je reste à ta disposition pour tout complément d'information.
    merci mais l'image des tables (illisible) ne m'est d'aucun secours puisque je ne peux pas vérifier le type de données dans chaque table.

    Je pensais plutôt avoir une copie de la base au format .accdb ou .mdb) avec uniquement les tables vides et les requêtes, compressée au format .zip ou .rar et mise en pièce jointe (icône trombone à coté du smiley)

    Autre chose: dans le code de la requête "Age Usagers Fonction Usagers Présent" on ne voit pas le champ Age alors qu'on le voit dans l'image de la requête ...
    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. #26
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    Bonjour tee_grandbois
    J'ai compacte ma base de données avec "Winrar" et 7-Zip. Tu trouveras le fichier Winrard en annexe et le fichier 7-Zip ci-dessous.

    2019-06-15-Permanence_Téléphonique_Encodage.7z

    En ce qui concerne la requête "Age Usagers Fonction Usagers Présent" je n'ai pas transmis la bonne image. Je me suis trompé.
    Voici l'image adéquate :

    Nom : Age Usagers Fonction Usagers Présent.PNG
Affichages : 555
Taille : 59,9 Ko

    et son code Sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Usagers.[N° Usager], Usagers.[Date décès], Usagers.Nom, Usagers.Prénom, Usagers.Sexe, Usagers.Date_naissance, CalculAge([Usagers.Date_naissance],Date()) AS Age, Usagers.Utilisateur
    FROM Usagers
    WHERE (((Usagers.[Date décès]) Is Null) AND ((Usagers.Utilisateur)="OUI"))
    ORDER BY Usagers.Sexe, Usagers.Date_naissance DESC;
    J'espère avoir répondu correctement à tes demandes
    Fichiers attachés Fichiers attachés

  7. #27
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Bonjour Liegecam64,
    Citation Envoyé par Liegecam64
    J'aimerais avoir un tri croissant concernant les tranches d'âge et connaître le nombre d'usagers pour chaque tranche.
    pour avoir cela il ne faut pas mettre les champs qui provoquent une unicité dans la liste: N° Course, N° Usager, Nom, prénom, Age ...
    J'ai cru comprendre aussi qu'il fallait un regroupement par Sexe, donc au final, il n'y aura que 3 colonnes: le sexe, la tranche d'age et le comptage.
    Voici le code corrigé de la requête Stat 17 Requête1:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Usagers.Sexe, Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus") AS trancheAge, Count(Courses.[N° Usager]) AS NbrParTranche
    FROM [Age Usagers Fonction Usagers Présent] INNER JOIN (Usagers INNER JOIN ([Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee] INNER JOIN Courses ON [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course] = Courses.[N° Course]) ON Usagers.[N° Usager] = Courses.[N° Usager]) ON [Age Usagers Fonction Usagers Présent].[N° Usager] = Usagers.[N° Usager]
    WHERE (((Courses.[Date de la course]) Is Not Null))
    GROUP BY Usagers.Sexe, Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus")
    ORDER BY Usagers.Sexe, Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus");
    à noter également que dans la table Usagers, bien qu'il existe une liste de valeurs dans le champ (la propriété "Limiter à liste" est à Non, donc on peut saisir ce que l'on veut), on trouve des orthographes différentes (et donc plus de tranches que prévu):

    Nom : _0.JPG
Affichages : 579
Taille : 55,7 Ko
    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. #28
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    Merci beaucoup tee_grandbois. La requête fonctionne.
    Suite à ton conseil, j'ai limité la liste de valeurs dans le champ de la table Usagers.
    Je te remercie encore beaucoup pour ton aide

  9. #29
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Suite à ton conseil, j'ai limité la liste de valeurs dans le champ de la table Usagers.
    as-tu pensé à corriger les valeurs Feminin et Masulin ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Usagers set Sexe = "Féminin" where Sexe = "Feminin";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Usagers set Sexe = "Masculin" where Sexe = "Masulin";
    J'ai noté aussi des enregistrements dont le Sexe n'était pas renseigné
    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. #30
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    Excuse mon ignorance.
    Je suppose que le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Usagers set Sexe = "Féminin" where Sexe = "Feminin";
    est à placer dans la requête "Stat 17 requête 1. Si oui à quel endroit faut-il le placer ?
    Il y a effectivement des enregistrements dont le sexe n'est pas défini parce que le téléphoniste qui est bénévole ne l'a pas demandé et pas fourni

  11. #31
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    Bonsoir tee_grandbois
    Je viens t'ennuyer encore un peu avec la requête dont question ci-avant.
    Est-il possible de connaître, en fonction des tranches d'âge, le nombre d'usagers dont le sexe est inconnu ainsi que le nombre d'usagers masculins et féminins dont l'âge n'est pas connu.
    Je te remercie d'avance pour ta réponse.

  12. #32
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    voici la requête qui donne la liste des usagers (non décédés) avec la date de naissance non renseigné ou dont le sexe n'est pas "Féminin" ou "Masculin" ou est nul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Usagers.[N° Usager], Usagers.Nom, Usagers.Prénom, Usagers.Sexe, Usagers.Date_naissance
    FROM Usagers INNER JOIN Courses ON Usagers.[N° Usager] = Courses.[N° Usager]
    WHERE (((Usagers.[Date décès]) Is Null)) OR (((Usagers.[Date décès]) Is Null))
    GROUP BY Usagers.[N° Usager], Usagers.Nom, Usagers.Prénom, Usagers.Sexe, Usagers.Date_naissance
    HAVING (((Usagers.Date_naissance) Is Null)) OR ((((Usagers.Sexe) Not Like "Féminin" And (Usagers.Sexe) Not Like "Masculin") Or (Usagers.Sexe) Is Null));
    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 ?

  13. #33
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculs par tranches d'âge
    Bonjour tee_grandbois.
    Je te prie de m’excuser d’encore venir t’importuner avec toujours la même requête. Je sollicite ton aide.
    Pour l’année 2018, je compte 1789 courses réalisées réparties en 1239 courses ponctuelles et 550 courses répétitives.
    Le code SQL que tu m’as fourni pour la requête dont question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Usagers.Sexe, Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus") AS trancheAge, Count(Courses.[N° Usager]) AS NbrParTranche
    FROM [Age Usagers Fonction Usagers Présent] INNER JOIN (Usagers INNER JOIN Courses ON Usagers.[N° Usager] = Courses.[N° Usager]) ON [Age Usagers Fonction Usagers Présent].[N° Usager] = Usagers.[N° Usager]
    WHERE (((Courses.[Date de la course]) Is Not Null))
    GROUP BY Usagers.Sexe, Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus")
    ORDER BY Usagers.Sexe, Switch([age]<18,"moins de 18 ans",[age] Between 18 And 20,"entre 18 et 20 ans",[age] Between 21 And 30,"entre 21 et 30 ans",[age] Between 31 And 40,"entre 31 et 40 ans",[age] Between 41 And 50,"entre 41 et 50 ans",[age] Between 51 And 60,"entre 51 et 60 ans",[age] Between 61 And 70,"entre 61 et 70 ans",[age] Between 71 And 80,"entre 71 et 80 ans",[age] Between 81 And 90,"entre 81 et 90 ans",[age] Between 91 And 100,"entre 91 et 100 ans",[age]>100,"101 ans et plus");
    me donne un total de 794 courses réalisées, soit un manque de 995 courses.
    Ne voulant pas abuser de ton aide, j’ai essayé par mes propres moyens de réaliser la requête.
    J’ai réalisé 4 requêtes dont deux servent à créer la 3ième et ensuite la quatrième.
    La première*: Fonction Stat 17 Courses Année Sexe Date Naissance, dont voici le code SQL me donne 1785 courses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Stat 09 Courses Modification Criteres Recherche Annee].[N° Course], Courses.[Date de la course], Usagers.[N° Usager], Usagers.Sexe, Usagers.Date_naissance
    FROM Usagers RIGHT JOIN (Courses INNER JOIN [Stat 09 Courses Modification Criteres Recherche Annee] ON Courses.[N° Course] = [Stat 09 Courses Modification Criteres Recherche Annee].[N° Course]) ON Usagers.[N° Usager] = Courses.[N° Usager]
    WHERE (((Courses.[Date de la course]) Is Not Null) AND ((Usagers.[N° Usager]) Is Not Null)) OR (((Courses.[Date de la course]) Is Not Null) AND ((Usagers.[N° Usager]) Is Not Null) AND ((Usagers.Sexe) Is Null) AND ((Usagers.Date_naissance) Is Null))
    ORDER BY Usagers.Sexe, Usagers.Date_naissance;
    La seconde*: Fonction Stat 17 Sexe et Age, dont voici le code SQL me donne 1785 courses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Stat 09 Courses Modification Criteres Recherche Annee].[N° Course], Courses.[Date de la course], Courses.[N° Usager], Usagers.Sexe
    FROM Usagers RIGHT JOIN ([Stat 09 Courses Modification Criteres Recherche Annee] INNER JOIN Courses ON [Stat 09 Courses Modification Criteres Recherche Annee].[N° Course] = Courses.[N° Course]) ON Usagers.[N° Usager] = Courses.[N° Usager]
    GROUP BY [Stat 09 Courses Modification Criteres Recherche Annee].[N° Course], Courses.[Date de la course], Courses.[N° Usager], Usagers.Sexe
    HAVING (((Courses.[Date de la course]) Is Not Null) AND ((Courses.[N° Usager]) Is Not Null)) OR (((Courses.[Date de la course]) Is Not Null) AND ((Courses.[N° Usager]) Is Not Null) AND ((Usagers.Sexe) Is Null));
    La troisième*: Stat 17 Courses Sexe Age Regroupement, dont voici le code SQL ne me donne plus que 1111 courses soit une perte de 678 courses:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Fonction Stat 17 Courses Année Sexe Date Naissance].[N° Course], [Fonction Stat 17 Courses Année Sexe Date Naissance].Sexe, [Fonction Stat 17 Usagers et Age Usagers Presents].Age, Switch(age<18,"moins de 18 ans",age Between 18 And 20,"entre 18 et 20 ans",age Between 21 And 30,"entre 21 et 30 ans",age Between 31 And 40,"entre 31 et 40 ans",age Between 41 And 50,"entre 41 et 50 ans",age Between 51 And 60,"entre 51 et 60 ans",age Between 61 And 70,"entre 61 et 70 ans",age Between 71 And 80,"entre 71 et 80 ans",age Between 81 And 90,"entre 81 et 90 ans",age Between 91 And 100,"entre 91 et 100 ans",age>100,"101 ans et plus") AS trancheAge
    FROM [Fonction Stat 17 Courses Année Sexe Date Naissance] INNER JOIN [Fonction Stat 17 Usagers et Age Usagers Presents] ON [Fonction Stat 17 Courses Année Sexe Date Naissance].[N° Usager] = [Fonction Stat 17 Usagers et Age Usagers Presents].[N° Usager]
    GROUP BY [Fonction Stat 17 Courses Année Sexe Date Naissance].[N° Course], [Fonction Stat 17 Courses Année Sexe Date Naissance].Sexe, [Fonction Stat 17 Usagers et Age Usagers Presents].Age, Switch(age<18,"moins de 18 ans",age Between 18 And 20,"entre 18 et 20 ans",age Between 21 And 30,"entre 21 et 30 ans",age Between 31 And 40,"entre 31 et 40 ans",age Between 41 And 50,"entre 41 et 50 ans",age Between 51 And 60,"entre 51 et 60 ans",age Between 61 And 70,"entre 61 et 70 ans",age Between 71 And 80,"entre 71 et 80 ans",age Between 81 And 90,"entre 81 et 90 ans",age Between 91 And 100,"entre 91 et 100 ans",age>100,"101 ans et plus")
    ORDER BY [Fonction Stat 17 Courses Année Sexe Date Naissance].Sexe, [Fonction Stat 17 Usagers et Age Usagers Presents].Age;

    La quatrième*: Stat 17 Courses Sexe Age Compte, dont voici le code SQL maintien le nombre de 1111 courses:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Stat 17 Courses Sexe Age Regroupement].Sexe, [Stat 17 Courses Sexe Age Regroupement].trancheAge, Count([Stat 17 Courses Sexe Age Regroupement].Age) AS CompteDeAge
    FROM [Stat 17 Courses Sexe Age Regroupement]
    GROUP BY [Stat 17 Courses Sexe Age Regroupement].Sexe, [Stat 17 Courses Sexe Age Regroupement].trancheAge
    ORDER BY [Stat 17 Courses Sexe Age Regroupement].Sexe;
    Puis-je te demander pourquoi je perds 678 courses entre la 2ième et la 3ième requête.
    Le fait d’avoir 4 requêtes pour obtenir le résultat désiré ne me dérange pas.
    Je souhaite par la suite, faire les mêmes requêtes pour les courses ponctuelles et les courses répétitives.
    D’avance je te remercie pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Calculer le nombre d'usagers par tranche d'âge.
    Par Liegecam64 dans le forum VBA Access
    Réponses: 11
    Dernier message: 08/06/2018, 08h10
  2. [XL-2007] Calcul des droits par tranche et suivant montant de la transaction.
    Par Abdelinho dans le forum Excel
    Réponses: 5
    Dernier message: 18/03/2011, 18h25
  3. [XL-2003] calcul par tranche de 10jours
    Par seychelles85 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2010, 14h49
  4. tranche de calcul par date
    Par benvanbelgie dans le forum SAS Base
    Réponses: 3
    Dernier message: 12/05/2010, 17h51
  5. Calcul d'heures par tranche horaire
    Par A0080 dans le forum Excel
    Réponses: 11
    Dernier message: 05/03/2008, 14h19

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