finarfin95
Messages postés19Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 mars 2007
-
14 mars 2007 à 09:29
finarfin95
Messages postés19Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 mars 2007
-
14 mars 2007 à 14:27
Bonjour à tous!
J'ai un petit souci de jointure et je fais appel à la collectivité pour m'aclairer un petit peu.
Le contexte est le suivant :
Je possède une vue de structure suivante :
ID (int) - DATE (datetime) - CATEGORIE (varchar) - SOUS-CATEGORIE (varchar) - VALEUR (float)
A partir de cette vue, je voudrais en créer une autre qui me permettrait d'avoir au minimum une valeur par CATEGORIE / SOUS-CATEGORIE par mois/année. Naïvement je me dis qu'en créant une table temporaire avec mes 12 mois je pourrais, via une jointure externe et je ne sais quels artifices, obtenir le résultat recherché, mais je ne vois pas comment...
Merci pour tout conseil que vous pourrez me donner sur le sujet!
Romain
finarfin95
Messages postés19Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 mars 2007 14 mars 2007 à 14:27
Ok quelqu'un m'a donné la solution, c'est un truc du genre :
SELECT M.ANNEE
, M.MOIS
, H.CATEGORIE
, H.SOUS_CATEGORIE
, sum(V.VALEUR)AS TOTAL
FROM
( MOIS AS M
CROSSJOIN
(SELECT C.CATEGORIE
, C.SOUS_CATEGORIE
FROM MATABLE AS C
GROUPBY
C.CATEGORIE
, C.SOUS_CATEGORIE
)AS H
)
LEFTJOIN
MATABLE AS V
ON H.CATEGORIE = V.CATEGORIE
AND H.SOUS_CATEGORIE = V.SOUS_CATEGORIE
AND M.ANNEE = extract(year FROM V.DATE)
AND M.MOIS = extract(month FROM V.DATE)
GROUPBY
M.ANNEE
, M.MOIS
, H.CATEGORIE
, H.SOUS_CATEGORIE
;
Avec MOIS une table temporaire contenant mon calendrier Mois/Années