Voilà j'ai un petit souci sur une requete.

Pour expliquer la situation cela concerne une gestion d'articles. A savoir qu'un article en panne passe en "Intervention" pour être réparé et ce qu'on m'a demandé c'est que l'on affiche la moyenne des délais entre chaque intervention sur un article (entre la fin de l'une et le début de la suivante) sur les 3 derniers mois.
Et pour les articles n'ayant qu'une seule intervention on lui attribue le délai suivant : Date du début de traitement - la date d'il y a 3 mois.
Et pour les articles n'ayant eu aucune intervention on leur met 3 mois de delai (soit 90 jours).

donc je leur ai sorti le code suivant qui marche très bien


Tables et champs : WS=> Table "Intervention"
--> DT_WS_BEGIN = Date de début d'intervention
--> DT_WS_END = Date de fin d'intervention
--> CD_WO = N° intervention
--> CD_BOX = N° Article

BOX=> Table "Article"
--> CD_BOX = N° article

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
 
select round(avg(T1.delai))DELAI,'ARTICLE'TYPE
from(
    select  L2.BOX BOX,L1.cd_wo, decode(L1.delai,'',90,L1.delai)DELAI
    from(
       select B.CD_BOX BOX, CD_WO, WS.DT_WS_BEGIN D, WS.DT_WS_END F, 
         case
           when to_date( WS.DT_WS_BEGIN) - to_date((lag(WS.DT_WS_END, 1) over(partition by B.CD_BOX order by WS.DT_WS_BEGIN))) is null
           then round(WS.DT_WS_BEGIN-(sysdate-90))
           else to_date( WS.DT_WS_BEGIN) - to_date((lag(WS.DT_WS_END, 1) over(partition by B.CD_BOX order by WS.DT_WS_BEGIN)))
         end delai
       from WS, BOX B
       where  B.CD_BOX=WS.CD_BOX
          and DT_WS_BEGIN between (sysdate-90) and sysdate
           /*###*/ --expliqué plus bas
       group by B.CD_BOX, CD_WO, WS.DT_WS_BEGIN, WS.DT_WS_END
       order by B.CD_BOX, CD_WO, WS.DT_WS_BEGIN
        )L1,
        (
          select CD_BOX BOX
          from BOX
        )L2
    where L1.BOX(+)=L2.BOX
     and decode(L1.delai,'',90,L1.delai) >= 1
  )T1
Le problème est qu'aujourd'hui on me demande de changer ça en faisant la même chose mais pas par rapport à la date du jour mais par rapport à une date entrée par l'utilisateur.

Je précise que ma requete est intégrée dans une appli qui affiche que le résultat et où j'ai possibilité d'ajouter une zone de saisie qui remplacera les /*###*/ par un "and champs(que j'aurais administré) = saisie de l'utilisateur"


Donc pour résumer le problème je dois remplacer mon sysdate par une entrée manuelle.
Pas évident à expliquer mais bon j'espère avoir été le plus clair possible