Bonjour à tous le monde,
Me voici en face d'un problème
Conf : Base HFSQL
Voici la configuration de mes tables:
T_aliments ( id, libelle, type) : table ou je référence tous les noms des différents plats ( le type étant : entrée/plat/fromage etc..)
t_lnk_repas_util (id_repas, id_util ,date_repas) : 1 ligne représente 1 repas pour 1 utilisateur
t_lnk_repas_aliments(id_repas,id_aliment) : 1 ligne permet de lié un aliment à un repas ==> 5 lignes pour un repas
Le but étant de pouvoir sortir un état pour compter le nombre d'aliments dans une journée
Exemple 01/01/2015 :
entrée_1 : 15
entrée_2: 7
plat_1 : 12
légumes_1 : 7
etc...
J'arrive à obtenir cet état avec la requête suivante :
Seulement voilà...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select distinct libelle, count(libelle) from T_LNK_REPAS_UTIL lru LEFT OUTER JOIN T_LNK_REPAS_ALIMENTS lra ON (lru.id_repas = lra.id_repas), T_LNK_REPAS_ALIMENTS lra left outer join T_ALIMENTS a on(lra.id_aliments = a.id_aliments) where Date_repas = '20150101' group by libelle
Je souhaiterais que avoir le même comptage mais avec plat et légumes piper (un bon coup de franglais ça fait pas de mal)
Exemple :
entrée_1 : 20
entrée _2 : 7
plat_1 || légume_1 : 2
plat_1 || légume_2 : 7
plat_2 || légume_2 : 3
fromage_1: 8
ect..
Voici un essai d'auto jointure qui... bien sur ne fonctionne pas ( ben oui sinon je ne serais pas la x) )
A tous ceux qui ont pris le temps de lire merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select id_util, lru.id_repas, a.libelle FROM T_LNK_REPAS_UTIL lru, T_LNK_REPAS_ALIMENTS lra, T_ALIMENTS a, t_aliments b where lru.date_repas = '20150603' and lru.id_repas = lra.id_repas AND (lra.id_aliments = a.id_aliments(+) AND a.id_type in (5,55)) AND (lra.id_aliments = b.id_aliments(+) AND b.id_type in (2,22))
A Bientôt
Cordialement.
Partager