Obtenir le nombre de ligne de plusieures tables dans le meme tableau ?

Résolu
Signaler
Messages postés
146
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
8 mars 2008
-
Messages postés
79
Date d'inscription
mardi 2 avril 2002
Statut
Membre
Dernière intervention
6 juillet 2009
-
bonjour,

je recherche une facon d'obtenir le nombre de ligne de plusieures
tables de ma base de donnée et récupérer le résultat dans un tableau
d'une ligne où chaque colonne correspond à la table associée.

en gros, je sais comment récupérer le nombre de ligne avec la requete :

SELECT COUNT(colonne1) FROM table1



mais si je fait une requete du genre :

SELECT COUNT(table1.colonne1),COUNT(table2.colonne1),COUNT(table3.colonne1) FROM table1,table2,table3

ca me donne un résultat bizare dans certains cas (lorsque il n'y a pas de ligne dans une ou plusieures des tables)



en fait je veux un résultat sous la forme :

table: table1 | table2 | table3

nbr:
15
0 5


mais si l'une des table est vide, ca me donne des 0 partout.



je pense avoir expliqué clairement la situation et le résultat que je
recherche. je n'est pas trouvé dans mon bouquin sur sql ni dans les
forums codes sources.

si vous savez comment faire, meme une réponse breve m'aidera sans aucun doute.



merci

4 réponses

Messages postés
79
Date d'inscription
mardi 2 avril 2002
Statut
Membre
Dernière intervention
6 juillet 2009

Effectivement j'ai mal lu...

alors sous access

SELECT 1 as groupe,1 as tablenum ,Count(TABLE1.colonne1) AS CompteDeChamp2
FROM TABLE1
UNION ALL
SELECT 1,2,Count(TABLE3.colonne1)
FROM TABLE2
UNION ALL
SELECT 1,3,Count(TABLE3.colonne1)
FROM TABLE3;

Et apres a partir de cette requete enregistrer sous le nom test

TRANSFORM First(test.CompteDeChamp2) AS PremierDeCompteDeChamp2
SELECT test.groupe
FROM test
GROUP BY test.groupe
PIVOT test.tablenum;
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut,



Ta requete ne fonctionne pas elle fait le produit cartésien

Ex

Une table de 3 et une table de 9 ---> nbr = 27 | 27



Sous access



SELECT CompteTable1.Table1, CompteTable2.TAble2

FROM CompteTable1, CompteTable2;



requete CompteTable2

SELECT Count(*) AS TAble2



Sous sql server tu peut normalement mettre les select dans les clauses FROM et SELECT



Desolé j'ai pas de SQLserver sous la main.



Bonne continuation
Messages postés
79
Date d'inscription
mardi 2 avril 2002
Statut
Membre
Dernière intervention
6 juillet 2009

Fais une requete UNION?

SELECT COUNT(colonne1) FROM table1
UNION
SELECT COUNT(colonne1) FROM table2
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut

Karn

Ta solution est bonne mais le probleme c'est que le resultat ne
correspond pas à la demande car il faut que tu pivotes ta table si tu
veux.



table: table1 | table2 | table3

nbr:
15
0 5