<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Passing variable to macro needed for if else in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303160#M64354</link>
    <description>&lt;P&gt;I have code that I am needing to run only if there has been a date change.&amp;nbsp; I'm comparing the last entry date of two different tables and storing it to two variables.&amp;nbsp; I then need to create a file only if the dates are different.&amp;nbsp; This is what I have so far, but it is not working - it's actually not doing anything.&amp;nbsp; I'm not sure if I'm passing the variables correctly.&amp;nbsp; Any help would be greatly appreciated.&lt;/P&gt;
&lt;P&gt;/*Get Last Date in file*/&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt; &lt;STRONG&gt;SQL&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select DISTINCT fldDate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO:VariableToStoreLastDateTbleA&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from TbleA where fldDate = (select max(fldDate) from TbleA)&lt;/P&gt;
&lt;P&gt;GROUP BY fldDate&lt;/P&gt;
&lt;P&gt;ORDER BY fldDate&lt;/P&gt;
&lt;P&gt;;&lt;STRONG&gt;QUIT&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt; &lt;STRONG&gt;SQL&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select DISTINCT fldDate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO:VariableToStoreLastDateTbleB&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from TbleB where fldDate = (select max(fldDate) from TbleB)&lt;/P&gt;
&lt;P&gt;GROUP BY fldDate&lt;/P&gt;
&lt;P&gt;ORDER BY fldDate&lt;/P&gt;
&lt;P&gt;;&lt;STRONG&gt;QUIT&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*If LastDate in WorkingTable &amp;gt; LastDate in Other&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%Macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;Validate&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %IF &amp;amp; VariableToStoreLastDateTbleA&amp;gt;&amp;nbsp;VariableToStoreLastDateTbleB %then&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Generate excel file */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods msoffice2k&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file="NameOfFile.xls"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style=sasweb;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc report data= TbleA nowd;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE ;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ….rest of code to generate file&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ods all_ close;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%MEnd&lt;/STRONG&gt; Validate;&lt;/P&gt;</description>
    <pubDate>Fri, 07 Oct 2016 13:39:20 GMT</pubDate>
    <dc:creator>LisaSAS</dc:creator>
    <dc:date>2016-10-07T13:39:20Z</dc:date>
    <item>
      <title>Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303160#M64354</link>
      <description>&lt;P&gt;I have code that I am needing to run only if there has been a date change.&amp;nbsp; I'm comparing the last entry date of two different tables and storing it to two variables.&amp;nbsp; I then need to create a file only if the dates are different.&amp;nbsp; This is what I have so far, but it is not working - it's actually not doing anything.&amp;nbsp; I'm not sure if I'm passing the variables correctly.&amp;nbsp; Any help would be greatly appreciated.&lt;/P&gt;
&lt;P&gt;/*Get Last Date in file*/&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt; &lt;STRONG&gt;SQL&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select DISTINCT fldDate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO:VariableToStoreLastDateTbleA&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from TbleA where fldDate = (select max(fldDate) from TbleA)&lt;/P&gt;
&lt;P&gt;GROUP BY fldDate&lt;/P&gt;
&lt;P&gt;ORDER BY fldDate&lt;/P&gt;
&lt;P&gt;;&lt;STRONG&gt;QUIT&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt; &lt;STRONG&gt;SQL&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select DISTINCT fldDate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO:VariableToStoreLastDateTbleB&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from TbleB where fldDate = (select max(fldDate) from TbleB)&lt;/P&gt;
&lt;P&gt;GROUP BY fldDate&lt;/P&gt;
&lt;P&gt;ORDER BY fldDate&lt;/P&gt;
&lt;P&gt;;&lt;STRONG&gt;QUIT&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*If LastDate in WorkingTable &amp;gt; LastDate in Other&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%Macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;Validate&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %IF &amp;amp; VariableToStoreLastDateTbleA&amp;gt;&amp;nbsp;VariableToStoreLastDateTbleB %then&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Generate excel file */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods msoffice2k&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file="NameOfFile.xls"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style=sasweb;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc report data= TbleA nowd;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE ;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ….rest of code to generate file&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ods all_ close;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%MEnd&lt;/STRONG&gt; Validate;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Oct 2016 13:39:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303160#M64354</guid>
      <dc:creator>LisaSAS</dc:creator>
      <dc:date>2016-10-07T13:39:20Z</dc:date>
    </item>
    <item>
      <title>Re: Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303164#M64355</link>
      <description>&lt;P&gt;Your initial SQLs look much to complicated to me. Why not do&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
select max(fldDate)
into:VariableToStoreLastDateTbleA
from TbleA;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And your macro code won't work at all:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%IF &amp;amp; VariableToStoreLastDateTbleA&amp;gt; VariableToStoreLastDateTbleB %then&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note the blank after the ampersand, and the ampersand for the second macro variable is missing.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Oct 2016 14:03:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303164#M64355</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-10-07T14:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303197#M64366</link>
      <description>&lt;P&gt;Untested but I believe something like below could do the job.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro Validate;

  %local exec_flg;
  PROC SQL noprint;
    select 
      case
        when A.max_fldDate&amp;gt;B.max_fldDate then '1'
        else '0'
        end 
      into :exec_flg
    from 
      ( 
        select max(fldDate) as max_fldDate          
        from TbleA
      ) as A,
      (
        select max(fldDate) as max_fldDate          
        from TbleB
      ) as B

    ;
  QUIT;
 
 
  %IF &amp;amp;exec_flg=1 %then
    %do;
      /*Generate excel file */
      ods msoffice2k
        file="NameOfFile.xls"
        style=sasweb;

      proc report data= TbleA nowd;
        TITLE;
        ….rest of code to generate file
        ;
      run;

      Ods all_ close;
    %end;

%mend Validate;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 07 Oct 2016 15:22:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303197#M64366</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2016-10-07T15:22:16Z</dc:date>
    </item>
    <item>
      <title>Re: Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303207#M64369</link>
      <description>&lt;P&gt;Certainly, let's rule out the obvious. &amp;nbsp;You are defining a macro, but never executing the macro. &amp;nbsp;You would need to add a %validate statement at the end.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If it still produces nothing, add to your macro definition:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%else %do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; %put your date variables so you can see what was calculated;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can create your own diagnostics here.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Oct 2016 16:18:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303207#M64369</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-10-07T16:18:00Z</dc:date>
    </item>
    <item>
      <title>Re: Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303246#M64380</link>
      <description>&lt;P&gt;I'm still not getting any of my values to come through?&amp;nbsp; I comfirmed my variables were populated outside of the macro,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable VariableToStoreLastDateTbleA resolves to 20160930&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable VariableToStoreLastDateTbleB resolves to 20160831&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So, how to I take the information that is stored in these variables and use them in the macro?&lt;/P&gt;
&lt;P&gt;/*If LastDate in WorkingTable &amp;gt; LastDate in Other*/&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%Macro&lt;/STRONG&gt; Validate ( VariableToStoreLastDateTbleA , VariableToStoreLastDateTbleB );&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %IF &amp;amp;VariableToStoreLastDateTbleB &amp;gt; &amp;amp;VariableToStoreLastDateTbleA %then&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put 'Last Date in Macola table is ' &amp;amp;VariableToStoreLastDateTbleB;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put 'Last Date in db2 table is '&amp;amp;VariableToStoreLastDateTbleA;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Generate excel file */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods msoffice2k&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file="filepath.xls"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; style=sasweb;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc report data=Macola_Work nowd;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TITLE ;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ods _all_ close;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;VariableToStoreLastDateTbleB;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;VariableToStoreLastDateTbleA;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;Validate&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;MLOGIC(VALIDATE): Parameter VariableToStoreLastDateTbleA has value&lt;/P&gt;
&lt;P&gt;MLOGIC(VALIDATE): Parameter VariableToStoreLastDateTbleB has value&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable VariableToStoreLastDateTbleA resolves to&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable VariableToStoreLastDateTbleB resolves to&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Oct 2016 18:28:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303246#M64380</guid>
      <dc:creator>LisaSAS</dc:creator>
      <dc:date>2016-10-07T18:28:56Z</dc:date>
    </item>
    <item>
      <title>Re: Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303258#M64384</link>
      <description>&lt;P&gt;It's a little difficult to interpret what the final structure is to your macro(s), but here is a likely scenario.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When SQL creates new macro variables, it creates them in the local symbol table for the currently executing macro. &amp;nbsp;If you have separated this program so that the SQL steps run in a separate macro from %VALIDATE, those macro variables will be gone before %VALIDATE executes. &amp;nbsp;You will need to define them as global before SQL runs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On a separate a smaller note, %ELSE DO; should be one statement, not two. &amp;nbsp;It happens to work the way you coded it, however.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Oct 2016 19:07:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303258#M64384</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-10-07T19:07:44Z</dc:date>
    </item>
    <item>
      <title>Re: Passing variable to macro needed for if else</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303356#M64425</link>
      <description>&lt;P&gt;Be careful with your macro parameter names. If you use a name for a macro parameter that is also used as the name of a global macro variable, you implicitly create a local (to the macro) macro variable that takes precedence over the global one. When you then call the macro without explicitly supplying parameters, those local macrovars stay empty.&lt;/P&gt;
&lt;P&gt;For the sake of less typing, I would use shorter names for macro parameters, and maybe prefix them with the macro name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;eg&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro validate(validate_date_a, validate_date_b);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;As it is, your macro with the given values would do nothing, as VariableToStoreLastDateTbleB (20160831) is smaller than VariableToStoreLastDateTbleA (20160930)&lt;/P&gt;</description>
      <pubDate>Sat, 08 Oct 2016 08:18:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Passing-variable-to-macro-needed-for-if-else/m-p/303356#M64425</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-10-08T08:18:25Z</dc:date>
    </item>
  </channel>
</rss>

