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

Langage SQL Discussion :

SQl Compter chaque table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Par défaut SQl Compter chaque table
    Bonjour
    je suis débutant en sql

    Comment compter le contenu dans chaque table?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from etudiant,famille,salarié,cadre
    mais cela donne le résultat faux.
    chaque table ont la même colonne (id, nom, prenom, adresse...)

    merci

  2. #2
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 49
    Par défaut
    Salut

    voici la requette que je vous propose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT COUNT(*) as totalTable FROM(SELECT NOM="" AS comptage
    FROM Archanne)
    GROUP BY comptage

  3. #3
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Bonjour,

    Il est normal que le résultat soit faux, sans jointure vous faites un produit cartésien.

    Vous pouvez faire comme ça :

    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
    select sum(nb_e) nb_etudiant, sum(nb_f) nb_famille, sum(nb_s) nb_salarie, sum(nb_c) nb_cadre from
    (select 
        1 nb_e,
        0 nb_f,
        0 nb_s,
        0 nb_c
     from etudiant
    union all select
        0,1,0,0
     from famille
    union all select
        0,0,1,0
     from salarie
    union all select
        0,0,0,1
     from cadre
    );
    petit 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    SQL> create table e as select 'e1' id_e from dual;
     
    Table created.
     
    SQL> insert into e values ('e2');
     
    1 row created.
     
    SQL> create table f as select 'f1' id_f from dual;
     
    Table created.
     
    SQL> insert into f values ('f2');
     
    1 row created.
     
    SQL> insert into f values ('f3');
     
    1 row created.
     
    SQL> commit;
     
    Commit complete.
     
    SQL> create table s as select 's1' id_s from dual;
     
    Table created.
     
    SQL> create table l (id_l varchar2(2));
     
    Table created.
     
    SQL> 
    SQL> 
    SQL> select sum(nb_e) nb_e, sum(nb_f) nb_f, sum(nb_s) nb_s, sum(nb_l) nb_l from
      2  (select 
      3      1 nb_e,
      4      0 nb_f,
      5      0 nb_s,
      6      0 nb_l
      7   from e
      8  union all select
      9      0,1,0,0
     10   from f
     11  union all select
     12      0,0,1,0
     13   from s
     14  union all select
     15      0,0,0,1
     16   from l
     17  );
     
         NB_E      NB_F      NB_S      NB_L
    --------- --------- --------- ---------
            2         3         1         0

    abdallahi pouvez vous m'expliquer votre requête svp ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Par défaut
    oups je esuis un peu perdu
    chrifo, c est quoi les chiffres 1,0,0,1?

    abdallahi , j'aimerai un peu d'explication aussi si c'est possible

    merci à vous

  5. #5
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Citation Envoyé par forst
    chrifo, c est quoi les chiffres 1,0,0,1?
    rien de sorcier, en fait la requête imbriquée renvoie 1 enregistrement pour chaque ligne de chaque table, avec la valeur 1 pour la table concernée, et 0 pour les autres. Il reste à faire la somme de tout ça pour avoir le nombre d'enregistrement ... Cf exemple
    Vous avez testé cette requête sur votre base ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Par défaut
    je vais faire un test

Discussions similaires

  1. [SQL SERVER 2005]créer un trigger pour chaque table de chaque DB
    Par Kropernic dans le forum Développement
    Réponses: 14
    Dernier message: 23/02/2010, 12h56
  2. Réponses: 5
    Dernier message: 30/10/2008, 16h09
  3. [SQL] Compter le nombre d'occurences dans une table par valeur
    Par SpaceFrog dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/04/2008, 17h22
  4. [SQL2K]Compter les lignes de chaque table.
    Par Mamilie dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 28/03/2007, 08h03
  5. SQL : compter les champs d'une table
    Par Bboy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/10/2005, 16h02

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