Bonjour,
Je suis nouvelle sur le site et un peu rouillée en SQL
Mon besoin est qu'il faudrait sur la liste de valeur ci-dessous, que je récupère uniquement pour cet objet les -10derniers mois.
Pour cela il faut que je me base sur la date la plus récente de mon objet (et non pas en me basant sur le sysdate, initialement prévus pour le ADD_MONTHS) et récupère les 10derniers mois.
Liste de valeur complète:
Résultat souhaité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select * from matable where champdate> add_months(sysdate),-10) and champ ='TEST1'; champ champdate TEST1 2014-03-11-16.07.06 TEST1 2014-03-11-16.12.50 TEST1 2014-03-11-16.12.50 TEST1 2015-01-14-18.35.06 TEST1 2015-01-14-18.38.34 TEST1 2015-01-14-18.38.34 TEST1 2017-02-16-10.51.50 TEST1 2017-02-16-11.06.34 TTEST1 2017-02-16-11.06.34
champ champdate
----------------------
TEST1 2017-02-16-10.51.50
TEST1 2017-02-16-11.06.34
TEST1 2017-02-16-11.06.34
Requete que j'essaie de mettre en place :
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 set serveroutput on declare date_max date; begin select max(champdate) into date_max from matable where champ ='TEST1' UNION ALL select champdate from matable where champdatefrom > add_months(date_max,-10) and champ ='TEST1'; DBMS_OUTPUT.PUT_LINE('var_max =' || date_max); end; / var_max =2017-02-16-11.06.34 PL/SQL procedure successfully completed.
Partager