Bonjour
je suis débutant en sql
Comment compter le contenu dans chaque table?
mais cela donne le résultat faux.Code:select count(*) from etudiant,famille,salarié,cadre
chaque table ont la même colonne (id, nom, prenom, adresse...)
:oops:
merci
Version imprimable
Bonjour
je suis débutant en sql
Comment compter le contenu dans chaque table?
mais cela donne le résultat faux.Code:select count(*) from etudiant,famille,salarié,cadre
chaque table ont la même colonne (id, nom, prenom, adresse...)
:oops:
merci
Salut
voici la requette que je vous propose
Code:
1
2
3 SELECT COUNT(*) as totalTable FROM(SELECT NOM="" AS comptage FROM Archanne) GROUP BY comptage
Bonjour,
Il est normal que le résultat soit faux, sans jointure vous faites un produit cartésien.
Vous pouvez faire comme ça :
petit exemple :Code:
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 );
Code:
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 ?
oups je esuis un peu perdu :)
chrifo, c est quoi les chiffres 1,0,0,1?:oops:
abdallahi , j'aimerai un peu d'explication aussi si c'est possible ;)
merci à vous
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 ;)Citation:
Envoyé par forst
Vous avez testé cette requête sur votre base ?
je vais faire un test
La requete que j'ai faite a pour obctif de compter le nombre des enregistrements d'une Seule table
donc y apas de jointure ni produit cartesien
ma requte contient la sou requte suivante
l'objectif de sette requette est de mettre la memme valeur dan la colonne nom ppour faire un regroupementCode:
1
2 SELECT NOM="" AS nomt FROM matable)
et en suite on fait le count sur cette requete
Code:
1
2
3 SELECT COUNT(*) from (SELECT NOM="" AS nomt FROM matable) GROUP BY NOMT
comment faire avec plusieurs table?:?Citation:
Envoyé par abdallahi
quel est ton objectif exactement ?
exemple
salarié = 2 , famille = 1 , etudiant 1 , cadre = 0
en total cela fait 4 personnes.
si tu vois ce que je veux dire
quelle est la stricture de ta base
les tables que tu a avec les chapms de chaque table
ils ont tous les mêmes champs (id, nom, prenom, adresse, code postal...)