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

Résolu
MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 - 15 juil. 2005 à 23:34
cs_karn Messages postés 79 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 6 juillet 2009 - 22 juil. 2005 à 09:42
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

cs_karn Messages postés 79 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 6 juillet 2009
22 juil. 2005 à 09:42
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;
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
16 juil. 2005 à 15:33
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
0
cs_karn Messages postés 79 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 6 juillet 2009
20 juil. 2005 à 12:02
Fais une requete UNION?

SELECT COUNT(colonne1) FROM table1
UNION
SELECT COUNT(colonne1) FROM table2
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
20 juil. 2005 à 13:13
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
0
Rejoignez-nous