Bonjour,
J'aimerai insérer la date du dernier trimestre (en la calculant) dans une table existante à laquelle je me connecte.
J'ai essayé plusieurs solutions non fructueuses pour le moment...calculé le trimestre en soi j'ai réussi maintenant mon problème est celui d'insérer la valeur du résultat ou l'expression de calcul dans la clause VALUE
Voici mon code
Pour calculer le trimestre j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 proc sql; connect to netezza (DATABASE=&netezzaDB server=&netezzaServer USER=&netezzaUser password=&netezzaPwd connection=SHARED); select * from connection to netezza ( INSERT INTO NDWXXP10..PROCEDURETRACKER_HIST (DATA_SOURCE , LOADENDDATE , DATA_ASOF , SOURCE_SYSTEM ) VALUES ('NOMDELAPROC', now(), dernier trimestre ici en date auj 2018-06-30 00:00:00, 'SAS'); ); disconnect from netezza; quit;
ou
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 DATA _null_; length lastqtr $6.; XDATE1 = PUT(INTNX('quarter',today(),-1,'E'),yymmddn.); lastqtr=trim(substr(XDATE1,1,6)); CALL SYMPUT('lastqtr',lastqtr); XDATE2 = PUT(INTNX('quarter',today(),-1,'B'),yymmdd10.); qtrstart=trim(translate(XDATE2, '/', '-')); CALL SYMPUT('qtrstart',qtrstart); XDATE3 = PUT(INTNX('quarter',today(),-1,'E'),yymmdd10.); qtrend=trim(translate(XDATE3,'/', '-')); CALL SYMPUT('qtrend',qtrend); RUN;
L'utilisation de la macro &qtrend a quasi marché mais là j'ai un problème de format car DATE_ASOF est un TIMESTAMP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 data test; format end_last_q date9.; end_last_q = intnx('qtr', today(), -1, 'end'); put end_last_q; run;
Un sous select avec la variable end_last_q n'a pas marché
Insertion directe de l'expression de calcul non plus.
Merci.
Partager