Bonjour,

J'ai un petit souci dont je n'arrive pas à trouver la solution avec Apex 5.

Voila, je veux faire un diagramme en batons basée sur une requête. Grosso modo, c'est un diagramme du chiffre d'affaire en fonction du mois de l'année, et chaque année est une série.
J'ai pour ça besoin de 'densifier' les données, car pour certains mois il n'y a pas d'enregistrement dans la base.

J'obtiens une requête qui me sors les bonnes données lorsque je la teste dans le SQL workshop, mais qui fait afficher un message d'erreur lorsque je tente de faire le diagramme.

Voici la requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WITH year_month AS (
SELECT      ADD_MONTHS ('01-01-2016', LEVEL - 1) ym
            FROM DUAL
      CONNECT BY LEVEL < MONTHS_BETWEEN (sysdate,'01-01-2016')
)
 
SELECT extract(month from year_month.ym) as Mois, extract(year from year_month.ym) as Annee, nvl(sum(chiffre_mensuel.ventes_par_mois),0) as Montant_total
FROM   year_month
	LEFT OUTER JOIN (
		SELECT extract(month from D_CMD) as Mois_vrai, extract(year from D_CMD) as Annee_vrai, sum(MONTANT_L) as ventes_par_mois
		FROM CMD, DET_CMD
		where REF_CMD_DET = CMD_ID
		group by extract(month from D_CMD), extract(year from D_CMD)
                order by extract(year from D_CMD), extract(month from D_CMD)
                ) chiffre_mensuel 
        ON (extract(month from year_month.ym) = Mois_vrai AND extract(year from year_month.ym) = Annee_vrai)
group by extract(month from year_month.ym), extract(year from year_month.ym)
order by Annee, Mois
Dans mes champs, D_CMD est une date.

Voici le résultat de cette qui marche et qui me donne ce que je cherche :
Nom : Capture d’écran 2017-09-14 à 21.25.12.jpg
Affichages : 265
Taille : 150,6 Ko

Et voici le résultat quand je tente de faire le graph :
Nom : Capture d’écran 2017-09-14 à 21.26.32.jpg
Affichages : 263
Taille : 117,4 Ko

J'ai bien vu que l'erreur 01843 est souvent un problème de format de date... mais pourquoi la requête fonctionne correctement ? Et comment résoudre le problème ?

Merci d'avance pour votre aide