<?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 Re: Run macro only if obs &amp;gt; 0 in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389037#M65996</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options mprint;

data source1;
  set sashelp.class;
run;

data source2;
  input name;
  datalines;
   ;
run;

data source3;
  set sashelp.cars;
run;


%macro abc(input);

    proc sql noprint;
      select count(*) 
        into :obs_count
          from &amp;amp;input;
    quit;
    
    %if &amp;amp;obs_count gt 0 %then
      %do;
      
	    data want;
		  set &amp;amp;input.;
	    run;
	 %end;

%mend abc;

%abc(source1);
%abc(source2);
%abc(source3);&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 18 Aug 2017 04:36:28 GMT</pubDate>
    <dc:creator>SuzanneDorinski</dc:creator>
    <dc:date>2017-08-18T04:36:28Z</dc:date>
    <item>
      <title>Run macro only if obs &gt; 0</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389030#M65994</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've got a macro set up but I want SAS to only run it when the number of observations in the input dataset &amp;gt;0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So for example, for the code below, I only want it to run for datasets that aren't empty. Assume that dataset source2 is empty in this instance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro abc(input);

data want;
set &amp;amp;input.;
run;

%mend abc;

%abc(source1);
%abc(source2);
%abc(source3);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 18 Aug 2017 03:38:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389030#M65994</guid>
      <dc:creator>Ltwo</dc:creator>
      <dc:date>2017-08-18T03:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: Run macro only if obs &gt; 0</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389037#M65996</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options mprint;

data source1;
  set sashelp.class;
run;

data source2;
  input name;
  datalines;
   ;
run;

data source3;
  set sashelp.cars;
run;


%macro abc(input);

    proc sql noprint;
      select count(*) 
        into :obs_count
          from &amp;amp;input;
    quit;
    
    %if &amp;amp;obs_count gt 0 %then
      %do;
      
	    data want;
		  set &amp;amp;input.;
	    run;
	 %end;

%mend abc;

%abc(source1);
%abc(source2);
%abc(source3);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 18 Aug 2017 04:36:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389037#M65996</guid>
      <dc:creator>SuzanneDorinski</dc:creator>
      <dc:date>2017-08-18T04:36:28Z</dc:date>
    </item>
    <item>
      <title>Re: Run macro only if obs &gt; 0</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389041#M65997</link>
      <description>&lt;P&gt;Thanks heaps&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 04:59:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389041#M65997</guid>
      <dc:creator>Ltwo</dc:creator>
      <dc:date>2017-08-18T04:59:26Z</dc:date>
    </item>
    <item>
      <title>Re: Run macro only if obs &gt; 0</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389101#M66002</link>
      <description>&lt;PRE&gt;data _null_;
  set sashelp.vtable (where=(libname="WORK" and substr(memname,1,6)="SOURCE" and nobs &amp;gt; 0));
  call execute(cats('%abc (',catx('.',libname,memname),');'));
run;&lt;/PRE&gt;
&lt;P&gt;Simplest form, you can change WORK (must be upcase) to yout lib and use the where to restrict tables/libraries - for instance if you dropped the lib, it would check any dataset source: from any lib.&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 12:57:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Run-macro-only-if-obs-gt-0/m-p/389101#M66002</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-08-18T12:57:44Z</dc:date>
    </item>
  </channel>
</rss>

