Hello,

J'ai un petit souci, voici ma query :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SELECT 
to_char(RUN_DATE,'dd') as "DAY",
SUM(CASE WHEN (to_char(RUN_DATE,'mm')=to_char(add_months(sysdate,-3),'mm')) THEN GEN_COUNT_CUSTOMER END) AS "GEN_COUNT_CUSTOMER_M-3",
SUM(CASE WHEN (to_char(RUN_DATE,'mm')=to_char(add_months(sysdate,-2),'mm')) THEN GEN_COUNT_CUSTOMER END) AS "GEN_COUNT_CUSTOMER_M-2",
SUM(CASE WHEN (to_char(RUN_DATE,'mm')=to_char(add_months(sysdate,-1),'mm')) THEN GEN_COUNT_CUSTOMER END) AS "GEN_COUNT_CUSTOMER_M-1",
SUM(CASE WHEN (to_char(RUN_DATE,'mm')=to_char(add_months(sysdate,0),'mm')) THEN GEN_COUNT_CUSTOMER END) AS "GEN_COUNT_CUSTOMER_M"
FROM RAS_DD_SEGMENTATION_MATRICE
WHERE SEG=:SEG
and
RUN_DATE>=add_months(sysdate,-3)
GROUP BY to_char(RUN_DATE,'dd')
ORDER BY to_char(RUN_DATE,'dd')
J'ai un premier paramètre SEG mais il faudrait que je rajoute un CASE WHEN sur la variable pour que l'utilisateur final puisse choisir (ici GEN_COUNT_CUSTOMER). J'ai essayé avec un AND :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SUM(CASE WHEN (:FIELD='GEN_COUNT_CUSTOMER' AND to_char(RUN_DATE,'mm')=to_char(add_months(sysdate,0),'mm')) THEN GEN_COUNT_CUSTOMER END) AS "GEN_COUNT_CUSTOMER_M"
Mais il ne me sort aucun résultat ni erreur...
Quelqu'un aurait une idée...? Merci pour votre aide...