je bloque depuis tout à l'heure sur une grosse requête SQL
J'ai deux requête qui ne sont différente que par une variable
je voudrais le réunir pour obtenir un tableau avec des dates qui fusionnent et les autres champs !! (confus) !
Code : Tout sélectionner
SELECT FINISHDATE, sum(NB_OT) AS NB_Y1, sum(DUREE_REAL) AS DUREE_Y1 FROM (
SELECT TO_CHAR(kp1.FINISHDATE,'YYYY-MM') AS FINISHDATE, kp1.NB_OT,kp1.DUREE_REAL
FROM SDNI.SDNQTKP1 kp1
WHERE kp1.PLANPLANT='CCA1'
AND (kp1.FUNCT_LOC LIKE '?010%')
AND (nvl(kp1.STATUTA1,'Z')<>'ANNU' OR nvl(kp1.STATUTA2,'Z')<>'ANNU' OR nvl(kp1.STATUTA3,'Z')<>'ANNU')
AND (COORD_TYPE IN ('ZURG') AND PMACTTYPE IN ('PAL','CUR'))
AND ( TO_CHAR(kp1.FINISHDATE,'YYYY-MM')>=to_char(to_date('03/01/2006'),'YYYY-MM')
and TO_CHAR(kp1.FINISHDATE,'YYYY-MM')<=to_char(to_date('31/07/2008'),'YYYY-MM') )
) GROUP BY FINISHDATE
Date | NB_Y1 | DUREE_Y1
Code : Tout sélectionner
SELECT FINISHDATE, sum(NB_OT) AS NB_Y2, sum(DUREE_REAL) AS DUREE_Y2 FROM (
SELECT TO_CHAR(kp1.FINISHDATE,'YYYY-MM') AS FINISHDATE, kp1.NB_OT , kp1.DUREE_REAL
FROM SDNI.SDNQTKP1 kp1
WHERE kp1.PLANPLANT='CCA1'
AND (kp1.FUNCT_LOC LIKE '?010%')
AND (nvl(kp1.STATUTA1,'Z')<>'ANNU' OR nvl(kp1.STATUTA2,'Z')<>'ANNU' OR nvl(kp1.STATUTA3,'Z')<>'ANNU')
AND (COORD_TYPE IN ('ZPRE','ZREG') AND PMACTTYPE IN ('SYS','CON','PRE','ESY'))
AND ( TO_CHAR(kp1.FINISHDATE,'YYYY-MM')>=to_char(to_date('03/01/2006'),'YYYY-MM')
and TO_CHAR(kp1.FINISHDATE,'YYYY-MM')<=to_char(to_date('31/07/2008'),'YYYY-MM') )
) GROUP BY FINISHDATE
DATE | NB_Y2 | DUREE_Y2
Ce que je voudrais faire c'est avoir un tableau de type
DATE | NB_Y1 | DUREE_Y1 | NB_Y2 | DUREE_Y2
et si il n'y a pas de résultat pour l'une des deux requête, mettre le champ (Y1 ou Y2) à 0 !!
C'est assez compliqué et je me demande s'il ne va pas falloir utiliser du PL/SQL
