Sql : Group by et count
Résolu
velderama
Messages postés
199
Date d'inscription
Statut
Membre
Dernière intervention
-
Profil bloqué -
Profil bloqué -
Bonjour,
ça fait un moment que j'ai plus fait de requête sql et j'ai quelques doutes quand à ma requête...
J'ai 2 tables liées en n<--->n : TA(idta,nomta,...) et TB(idtb,nomtb,...)
ce qui donne lieu à une troisième table TAB (idta2,idtb2,toto,...)
Ce que je veux faire est de compter nombre de idta pour chaque idtb
ça a l'air correct mais je ne suis pas très très sûr j'ai besoin d'un autre oeil la-dessus :)
Merci.
--
ça fait un moment que j'ai plus fait de requête sql et j'ai quelques doutes quand à ma requête...
J'ai 2 tables liées en n<--->n : TA(idta,nomta,...) et TB(idtb,nomtb,...)
ce qui donne lieu à une troisième table TAB (idta2,idtb2,toto,...)
Ce que je veux faire est de compter nombre de idta pour chaque idtb
select nomitdb,count(TA.idta) as nombreTA from TA,TB,TAB where TA.idta =TAB.idta2 and TB.idtb = TAB.idtb2 group by TB.idtb
ça a l'air correct mais je ne suis pas très très sûr j'ai besoin d'un autre oeil la-dessus :)
Merci.
--
A voir également:
- Sql : Group by et count
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
4 réponses
merci termgsi :)
Si je peux me permettre une dernière question :
dans la table TA j'ai des dates et j'aimerai calculer la dernière date de modification
la table TA : TA(idta,nomta,derniereMisAjour)
ce qui donne :
Je crains comme j'ai fait que la date calculée ne soit que la derniere date quand je fais mon groupement...Qu'en pensez-vous ?
Si je peux me permettre une dernière question :
dans la table TA j'ai des dates et j'aimerai calculer la dernière date de modification
la table TA : TA(idta,nomta,derniereMisAjour)
ce qui donne :
select TB.nomitdb,count(TA.idta) as nombreTA, TA.derniereMisAjour from TA,TB,TAB where TA.idta =TAB.idta2 and TB.idtb = TAB.idtb2 group by TB.idtb
Je crains comme j'ai fait que la date calculée ne soit que la derniere date quand je fais mon groupement...Qu'en pensez-vous ?
Change avec ceux-ci :
select TB.nomitdb,count(TA.idta) as nombreTA, MAX(TA.derniereMisAjour)
from TA,TB,TAB
where TA.idta =TAB.idta2 and TB.idtb = TAB.idtb2
group by TB.idtb
Pour avoir la dernière il faut mettre l'opérateur MAX devant qui te retournera la derniere mise à jour la plus haute donc la derniere
select TB.nomitdb,count(TA.idta) as nombreTA, MAX(TA.derniereMisAjour)
from TA,TB,TAB
where TA.idta =TAB.idta2 and TB.idtb = TAB.idtb2
group by TB.idtb
Pour avoir la dernière il faut mettre l'opérateur MAX devant qui te retournera la derniere mise à jour la plus haute donc la derniere