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

VB.NET Discussion :

Compter sur plusieurs colonnes Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 506
    Par défaut Compter sur plusieurs colonnes Access
    Bonjour,

    J'aimerais compter sur plusieurs colonnes, je m'explique avec un exemple tout simple

    J'ai une base de données avec une table [Tirages] contenant 5 colonnes : boule1, boule2, boule3, boule4 et boule5 (style Jeux Euromillions)

    Je vais donc avoir pour 1 enregistrement, un nombre à chaque champ "boule"

    Exemple :
    Enregistrement 1 : boule1 = 5, boule2 = 15 , boule3 = 21, boule4 = 27, boule5 = 42
    Enregistrement 2 : boule1 = 15, boule2 = 19 , boule3 = 21, boule4 = 37, boule5 = 45
    Enregistrement 3 : boule1 = 1, boule2 = 3 , boule3 = 14, boule4 = 45, boule5 = 17
    Enregistrement 4 : boule1 = 2, boule2 = 12 , boule3 = 20, boule4 = 30, boule5 = 45
    ... etc... (OK pour le principe )

    J'aimerais affiche un compte des boules (chiffres)

    Exemple :
    le chiffre 1 est sorti 1 fois
    le chiffre 2 est sorti 1 fois
    ...
    le chiffre 21 est sorti 2 fois
    le chiffre 45 est sorti 3 fois
    ... etc...

    Et je n'y arrive pas...

    J'ai créé 5 requêtes Access comptabilisant les chiffres, jusque là, c'est facile... mais après comment faire pour joindre les 5 requêtes ou afficher un compte ?

    Une idée ?

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut Vite comme ça
    Datatable

    NomColumn NomTirage
    NomColumn Boule
    NomColumn Numero

    Enregistrement

    NomTirage \Boule \Numero
    Tir1 \ Bl1 \ 4
    Tir1 \ Bl2 \ 26
    Tir1 \ Bl3 \ 42
    .....
    Tir2\ Bl1 \ 8
    Tir2 \ Bl2 \ 15
    Tir2 \ Bl3 \ 38

    Ensuite tu travailles au niveau des requêtes,genre

    count(Boule) where numero = 5

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut Le datatable
    Si je comprend bien tu as bâti ta table avec 5 columns qui contiennent tes numéros.

    Je ne suis qu'un amateur autodidacte et en toute modestie je crois que ta base de donnée est mal configurée. Si je comprend bien l'utilisation des bases de donnée, tu dois avoir une column par information différente, je m'explique:

    A titre d'exemple seulement

    Supposons une datatable x
    tu as:
    une colomn pour le numAuto
    une column pour la date du tirage
    une column pour le nom de la loto
    une column pour la boule
    une column pour le numéro

    de la tu peux extraire toute l'information que tu veux

    j'espère que ça peut t'aider

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Cette demande aurait d'avantage sa place dans le forum dédié à SQL.

    Je suis d'accord avec Mario sur le fait que ton MCD n'est pas évolutif, car si tu veux évoluer pour avoir une boule de plus ou de moins, tu aura soit une colonne qui sert à rien soit une colonne qui manque.
    Par contre je suis ne suis pas d'accord sur la manière dont il répond à la demande car avec cette méthode tu vas faire 45*5 = 225 requêtes. Et devras en rajouter si tu as plus de 45 boules.

    Avec la structure de base que tu as, ceci devrait ressortir ce que tu souhaites de manière plus efficace.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    select boule, sum(nb) as nombre 
    from
    (select boule1 as boule, count(boule1) as Nb from Tirage
    group by boule1
    union
    select boule2 as boule, count(boule2) as Nb from Tirage
    group by boule2
    union
    select boule3 as boule, count(boule3) as Nb from Tirage
    group by boule3
    union
    select boule4 as boule, count(boule4) as Nb from Tirage
    group by boule4
    union
    select boule5 as boule, count(boule5) as Nb from Tirage
    group by boule5) as T1
    group by boule

    Les requête interne (liées par des union) vont compter les boules par numéro pour chaque colonnes.
    On les nommes les colonnes de résultat pour pouvoir les utiliser par la suite.
    Ces première requête vont produire le résultat suivant où les valeurs que tu as dans plusieurs colonnes apparaissent plusieurs fois (la boule 45 par exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    boule nb
    1	1
    2	1
    3	1
    5	1
    12	1
    14	1
    15	1
    17	1
    19	1
    20	1
    21	2
    27	1
    30	1
    37	1
    42	1
    45	1
    45	2
    La requête "externe" va simplement faire la sommes des comptes par boule.

    Donc avec les valeurs que tu as fourni :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    boule	nombre
    1	1
    2	1
    3	1
    5	1
    12	1
    14	1
    15	1
    17	1
    19	1
    20	1
    21	2
    27	1
    30	1
    37	1
    42	1
    45	3

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 506
    Par défaut
    Bonjour,

    Merci pour la réponse, je regarde à ça...

Discussions similaires

  1. Compter dans une colonne le nb de valeurs communes
    Par kenny49 dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/04/2007, 14h48
  2. recuperer le type d'une colonne access
    Par mapmip dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/04/2007, 10h04
  3. Réponses: 9
    Dernier message: 13/03/2007, 18h24
  4. [VB6] Type de colonne Access sous VB ?
    Par jlvalentin dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 04/02/2005, 11h10
  5. Réponses: 14
    Dernier message: 06/08/2004, 15h12

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