Aloha,

Je cherche à produire un état de linéaire stocké dans ma base (une somme de longueur) sur les 12 derniers mois, par quinzaine et par utilisateur.

J'ai quelque chose d'approchant avec 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
19
20
21
22
23
24
25
26
27
28
29
30
 
SELECT ROUND (SUM (SDO_GEOM.SDO_LENGTH (E.GEOMETRY, 0.5)), 2)
          "LONGUEUR SAISIE",
       TO_CHAR (TO_DATE (APIC_CDATE), 'MM-YYYY') "MOIS/ANNEE",
       E.SAISIE_P,
       CASE WHEN TO_CHAR (TO_DATE (APIC_CDATE), 'DD') < 14 THEN '1ère quinzaine'
             ELSE '2ème quinzaine' END
          "QUINZAINE",
       GROUPING_ID (
          CASE
             WHEN TO_CHAR (TO_DATE (APIC_CDATE), 'DD') < 14 THEN '1ère quinzaine'
             ELSE '2ème quinzaine'
          END,
          E.SAISIE_P,
          TO_CHAR (TO_DATE (APIC_CDATE), 'MM-YYYY'))
          ID, COUNT(GID)
  FROM E_TRONCO E
 WHERE FLOOR (MONTHS_BETWEEN (SYSTIMESTAMP, APIC_CDATE)) < 12
GROUP BY ROLLUP (CASE
                    WHEN TO_CHAR (TO_DATE (APIC_CDATE), 'DD') < 14 THEN '1ère quinzaine'
             ELSE '2ème quinzaine'
                 END,
                 E.SAISIE_P,
                 TO_CHAR (TO_DATE (APIC_CDATE), 'MM-YYYY'))
ORDER BY SAISIE_P,
         TO_CHAR (TO_DATE (APIC_CDATE), 'MM-YYYY'),
         CASE
            WHEN TO_CHAR (TO_DATE (APIC_CDATE), 'DD') < 14 THEN '1ère quinzaine'
             ELSE '2ème quinzaine'
         END
Oui mais voilà, en cas d'absence de l'utilisateur sur une quinzaine, je n'ai pas de valeur nulle dans longueur saisie. Ma série est discontinue. Comment faire pour bien avoir, pour chacun des 12 derniers mois, chacun des utilisateurs, une valeur pour chacune des quinzaines ?

D'avance, merci,

PS. On peut utiliser TO_CHAR (TO_DATE (APIC_CDATE), 'W') < 3 à la place.