Bonjour,
je dois pas être réveillé et avoir le cerveau embrumé mais j'ai un petit problème
Voici ce que je souhaite faire.
J'ai la structure suivante :
Les codes sont des entier qui référencent des tables de dimension. Ma table mesure est une table de fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7TABLE MESURE b_entity_code bucket_code market_code m_entity_code indicator_code value
Mon indicator_code, market_code, bucket_code et m_entity_code sont connus.
Je cherche donc pour chaque b_entity_code le nombre de ligne par valeur.
Mes value peuvent avoir comme valeur 1, 2 ou 3 ou la ligne peut ne pas exister.
Voici ma requête actuelle :
Ca me permet de récupérer toutes mes base_entity même si la ligne dans mesure n'existe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select case when M.MEASURE_VALUE is null then count(*) end as nb0, case when M.MEASURE_VALUE = 1 then count(*) end as nb1, case when M.MEASURE_VALUE = 2 then count(*) end as nb2, case when M.MEASURE_VALUE = 3 then count(*) end as nb3 FROM BASE_ENTITIES BE LEFT OUTER JOIN MEASURE M ON BE.B_ENTITY_CODE = M.B_ENTITY_CODE AND M.INDICATOR_CODE = 1856 AND M.MARKET_CODE = 5 AND M.M_ENTITY_CODE = 968 AND M.BUCKET_CODE = 62 group by M.MEASURE_VALUE
Seulement j'aimerais récupérer les count sur une seule ligne alors qu'ici je récupère 4 lignes (une pour null, une pour 1, une pour 2, une pour 3)
Ou alors faut-il que je passe par des subselect dans ma requête?
merci d'avance
Partager