Bonjour,
Je bute atrocement (voyez l'heure) sur une requête sql que je veux faire en une seule passe.
NOTE :Le %orasql est une macro permettant d'utiliser en sas la syntaxe sql oracle.
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 %let DateD=08/04/2009; %let Numtie=1979800; %let ADCDEB=352; %orasql( create table refus as select a.IDFDOS, a.DATETD, a.DATDEC, a.IDFINTAGTPTN, a.CODAGNPTN, a.NUMDOSPTN, b.SMNCLD as SMNCLDETD FROM tf_dcfrfu_j a, td_tps b where NUMPERADC >= &ADCDEB and TYPETD='O' and CODPRO=CODSERPRO and trunc(DATETD) >= TO_DATE('&DateD','DD/MM/YYYY') and NUMTIE in (select NUMTIE002 from td_tieptn_j where NUMTIE002=&Numtie) and trunc(a.datetd)=trunc(b.jou) );
Mon soucis : les colonnes "DATDEC" et "DATETD" sont des dates.
La table DWH.TD_TPS est une table d'équivalence temps permettant la liaison entre une date "JOU" et des équivalence temporelles (ici ce sera la variable "SMNCLD" (semaine civile calendaire) )
En gros, dans cette même étape, je voudrais pouvoir créer 2 colonnes supplémentaires ("SMNCLDDEC" et "SMNCLDETD") représentant respectivement l'équivalence des variables "DATETD" ET "DATDEC" par rapport à la table TD_TPS
Dans mon exemple, cela fonctionne si je n'ai qu'une seule date(cad juste DATETD et pas en plus "DATDEC").
En ce cas "SMNCLDETD" me donne bien l'équivalence de "DATETD" par rapport à la table TD_TPS.
Mais comment réussir à faire la même chose, en une même étape pour la seconde date. Sachant que bien sur, les variables "DATDEC" et "DATETD" sont différentes.
Le faire en une et même étape est une contrainte. Sinon en 2 ou 3 étapes je pourrais le faire (par exemple en utilisant du SAS en étape data-set)
Avez-vous des idées ?
Merci d'avance.
Cdt,
Partager