rduvrac
Messages postés120Date d'inscriptionvendredi 7 février 2003StatutMembreDernière intervention 2 novembre 2009
-
5 avril 2008 à 12:19
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
5 avril 2008 à 18:29
Bonjour,
admettons une table qui contient les enregistrements suivant:
• OBJET • THEME1 • THEME2 • THEME3
- objet1 - Alimentaire - Tous - Tous
- objet2 - Cadeaux - Tous - Tous
- objet3 - Mode - Tous - Tous
- objet4 - Cadeaux - Alimentaire - Tous
- objet5 - Maison - Sport - Tous
Il y a donc :
- 2 Alimentaire
- 2 Cadeaux
- 1 Maison
- 1 Mode
- 1 Sport
- 5 Tous
Je souhaite donc faire afficher en "distinct" ces enregistrements par ordre alphabétique et en analysant les THEMES 1,2,et3.
J'utilise "Tous" par défaut, c'est pour ça qu'il est présent partout et parfois 2 fois lorsque l'objet ne rentre que dans un theme.
Actuellement j'ai :
SELECT theme, count( * )
FROM codes_reductions
GROUP BY theme
ORDER BY theme ASC
Mais ça me donne :
- 1 Alimentaire
- 2 Cadeaux
- 1 Maison
- 1 Mode
- 5 Tous
ça compte donc 1 seul Alimentaire et ne compte pas le Sport. Normal vu le code mais comment lui dire de chercher dan les THEME1 et THEME2 aussi ?
Je m'en sort pas vraiment, si vous pouviez m'aider...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 5 avril 2008 à 18:29
Hello,
alors déjà, dans un tel cas, on sort les thèmes de la table de base.
Une table objets, avec un objet_id, objet_nom, etc...
Une table thèmes avec un theme_id, theme_nom...
Une table de jointure avec objet_id, theme_id.
Apres,
select
count(lnk.*), th.theme_nom
from
lnk_objet_theme lnk
inner join themes th on th.theme_id = lnk.theme_id