Advertisement
Guest User

Untitled

a guest
Mar 6th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SAS 1.70 KB | None | 0 0
  1. /********************************************************/
  2. /*                                                      */
  3. /*    Initial program for setting library connections   */
  4. /*  and selecting time-choosing backing table from FRAN */
  5. /*                                                      */
  6. /********************************************************/
  7.  
  8. /* Temporary library => ok*/
  9. %global tmplib;
  10. %let tmplib=work;
  11.  
  12. /* Choose dataset - most probably will be set fixed => ok */
  13. %global set;
  14. %let set=temp;
  15.  
  16. /*  FRAN    */
  17. %global inlib;
  18. %global set2;
  19. %let inlib=shredstg;
  20. %let set2=fran_analysis;
  21. libname &inlib '\\aofrontex.local\sas-shareddrive\SASData';
  22.  
  23. /* Choose dividing variable => ok */
  24. %global variable;
  25. %let variable=&vari;
  26. *%put &variable.;
  27. *%put _all_;
  28.  
  29. /* Choose dividing variable value => ok */
  30. %global val;
  31. %let val=&value;
  32. *%put &val.;
  33.  
  34. /*  Time depth  */
  35. %global step;
  36. %let step=&stp;
  37.  
  38. /*  Separate years, quarters and months */
  39. proc sql noprint;
  40.     create table &tmplib..time as
  41.     select distinct YEAR, YYYYQ, YYYYMM
  42.     from &inlib..&set2.
  43.     where &variable="&val";
  44. quit;
  45.  
  46. /*  Split months and quarters   */
  47. data &tmplib..time;
  48. set &tmplib..time;
  49.     quarter=scan(YYYYQ,2,'Q');
  50.     YYYYMM=prxchange('s/ //',-1,YYYYMM);
  51.     month=scan(YYYYMM,2,'M');
  52.     YEAR2=input(YEAR,5.);
  53.     quarter2=input(quarter,5.);
  54.     month2=input(month,5.);
  55. run;
  56. /*  => to be used with prompt drop-down lists   */
  57.  
  58. proc sql noprint;
  59.     select max(YEAR2),min(YEAR2)
  60.     into :maxY, :minY
  61.     from &tmplib..time;
  62. quit;
  63.  
  64. %global mt1;
  65. %let mt1=&maxY;
  66. %put &maxY;
  67. %global mt0;
  68. %let mt0=&minY;
  69.  
  70. proc sql noprint;
  71.     select max(quarter2),max(month2)
  72.     into :maxQ,:maxM
  73.     from &tmplib..time
  74.     where YEAR2=&maxY;
  75. quit;
  76.  
  77. %global mt2;
  78. %let mt2=&maxQ;
  79. %put &maxQ;
  80. %global mt3;
  81. %let mt3=&maxM;
  82. %put &maxM;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement