<?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: need help with this Tricky macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204590#M267067</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank You very Much for taking out time and looking at the macro &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I got an error with the input files that i had provided following is the error that i got&amp;nbsp; it says it has &lt;SPAN style="font-size: 11pt; font-family: Calibri, sans-serif; line-height: 1.5em; color: #1f497d;"&gt;&lt;SPAN lang="en-US"&gt;no variable called “&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="line-height: 1.5em; color: purple; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;SALESUNITS&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 11pt; font-family: Calibri, sans-serif; line-height: 1.5em; color: #1f497d;"&gt;&lt;SPAN lang="en-US"&gt;”. Instead, I&amp;nbsp; have one called “SALES UNITS-192 OZ EQU CASE BASIS”.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt;So when sorting the table : The following “ERROR” appears.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;MPRINT(VARS):&amp;nbsp;&amp;nbsp; PROC SORT DATA = check(where=(upcase(compress(fact_desc))="SALESUNITS"));&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;MPRINT(VARS):&amp;nbsp;&amp;nbsp; BY outlet item item_no;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;MLOGIC(VARS):&amp;nbsp; %IF condition &amp;amp;compare. in (1 2 3) is TRUE&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: Input data set is empty.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: There were 0 observations read from the data set WORK.CHECK.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE UPCASE(COMPRESS(fact_desc))='SALESUNITS';&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: The data set WORK.CHECK has 0 observations and 7 variables.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: PROCEDURE SORT used (Total process time):&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt;After, when making the proc sql since the variable doesn’t exist merging fails.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-family: Calibri, sans-serif;"&gt;&lt;SPAN style="font-size: 11pt;"&gt;I am changing the code so that it can &lt;/SPAN&gt;&lt;SPAN style="font-size: 14.6666669845581px;"&gt;accommodate&lt;/SPAN&gt;&lt;SPAN style="font-size: 11pt;"&gt; this. I am just hoping it solves the error. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;Thank you once again. I never expected so quick response &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt; thank you sir &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Mar 2015 03:20:13 GMT</pubDate>
    <dc:creator>rahul88888</dc:creator>
    <dc:date>2015-03-19T03:20:13Z</dc:date>
    <item>
      <title>need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204584#M267061</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;a&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let pos_summary = pos_summary_A1.csv;&lt;/P&gt;&lt;P&gt;%let GMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = pos_summary_A1.csv;&lt;/P&gt;&lt;P&gt;%let check&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = check_syn_new_Final.csv;&lt;/P&gt;&lt;P&gt;%let filter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = filter.csv;&lt;/P&gt;&lt;P&gt;%let compare&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Compare: 1=All, 2=POSvsGMP, 3=POSvsCheckSyn, 4=GMPvsCheckSyn;&lt;/P&gt;&lt;P&gt;%let year_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 011213 010414;&amp;nbsp;&amp;nbsp;&amp;nbsp; * MMDDYY format START END eg 013113 123114;&lt;/P&gt;&lt;P&gt;%let year_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 011114 010315;&amp;nbsp;&amp;nbsp;&amp;nbsp; * MMDDYY format START END eg 013113 123114;&lt;/P&gt;&lt;P&gt;%let OUTFILE&amp;nbsp;&amp;nbsp;&amp;nbsp; = output.csv;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/******************************************************************************&lt;/P&gt;&lt;P&gt;******************************** INPUT ENDS ***********************************&lt;/P&gt;&lt;P&gt;*******************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro vars;&lt;/P&gt;&lt;P&gt;OPTIONS mprint mlogic merror serror minoperator;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filename pos "&amp;amp;pos_summary.";&lt;/P&gt;&lt;P&gt;filename GMP "&amp;amp;GMP.";&lt;/P&gt;&lt;P&gt;filename check "&amp;amp;check.";&lt;/P&gt;&lt;P&gt;filename flt "&amp;amp;filter.";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let year_1_start=%SYSFUNC(INPUTN(%scan(&amp;amp;year_1.,1," "),mmddyy6.));&lt;/P&gt;&lt;P&gt;%let year_1_end=%SYSFUNC(INPUTN(%scan(&amp;amp;year_1.,2," "),mmddyy6.));&lt;/P&gt;&lt;P&gt;%let year_2_start=%SYSFUNC(INPUTN(%scan(&amp;amp;year_2.,1," "),mmddyy6.));&lt;/P&gt;&lt;P&gt;%let year_2_end=%SYSFUNC(INPUTN(%scan(&amp;amp;year_2.,2," "),mmddyy6.));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put &amp;amp;year_1_start.;&lt;/P&gt;&lt;P&gt;%put &amp;amp;year_1_end.;&lt;/P&gt;&lt;P&gt;%put &amp;amp;year_2_start.;&lt;/P&gt;&lt;P&gt;%put &amp;amp;year_2_end.;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**************************** Get headers ************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;DATA pos_var;&lt;/P&gt;&lt;P&gt;&amp;nbsp; INFILE&amp;nbsp; pos dsd dlm="," obs=1 lrecl=5000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input varname: $50. @@;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET pos_var end=eod;&lt;/P&gt;&lt;P&gt;&amp;nbsp; varname= upcase(varname);&lt;/P&gt;&lt;P&gt;&amp;nbsp; call symput ('posvar' || left(_n_), varname);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if eod then call symput ('totPos', left(_n_));&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;DATA gmp_var;&lt;/P&gt;&lt;P&gt;&amp;nbsp; INFILE&amp;nbsp; gmp dsd dlm="," obs=1 lrecl=5000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input varname: $50. @@;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET gmp_var end=eod;&lt;/P&gt;&lt;P&gt;&amp;nbsp; varname= upcase(varname);&lt;/P&gt;&lt;P&gt;&amp;nbsp; call symput ('gmpvar' || left(_n_), varname);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if eod then call symput ('totGmp', left(_n_));&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**************************** Import Data ************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;DATA pos_summary;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INFILE pos lrecl=1000000 dsd dlm="," firstobs=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %DO i = 1 %TO&amp;nbsp; &amp;amp;totPos.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INPUT var&amp;amp;i.:&amp;nbsp; %if &amp;amp;i. &amp;lt; 4 %then $1000.; @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %END;&lt;/P&gt;&lt;P&gt;*proc print data = pos_summary (obs=1);&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;DATA gmp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INFILE gmp lrecl=1000000 dsd dlm="," firstobs=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %DO i = 1 %TO&amp;nbsp; &amp;amp;totGmp.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INPUT var&amp;amp;i.:&amp;nbsp; %if &amp;amp;i. &amp;lt; 4 %then $1000.; @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %END;&lt;/P&gt;&lt;P&gt;*proc print data = gmp (obs=1);&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;DATA check;&lt;/P&gt;&lt;P&gt;&amp;nbsp; INFILE check lrecl=1000000 dsd dlm="," firstobs=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; INPUT outlet: $1000. item_no: item: $1000. fact_desc: $1000. total: year_1: year_2:;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA filter;&lt;/P&gt;&lt;P&gt;&amp;nbsp; INFILE flt lrecl=1000000 dsd dlm="," firstobs=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; INPUT Market: $1000. name: $1000.;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**************************** Sort ************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT DATA = pos_summary(where=(upcase(compress(var3))="VOLUME")); BY var1-var3;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT DATA = gmp(where=(upcase(compress(var3))="VOLUME")); BY var1-var3;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT DATA = check(where=(upcase(compress(fact_desc))="SALESUNITS")); BY outlet item item_no;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**************************** Transpose ************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;PROC TRANSPOSE DATA = pos_summary OUT = pos_summary_trans;&lt;/P&gt;&lt;P&gt;&amp;nbsp; VAR var4-var&amp;amp;totPos.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; BY var1-var3;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC TRANSPOSE DATA = gmp OUT = gmp_trans;&lt;/P&gt;&lt;P&gt;&amp;nbsp; VAR var4-var&amp;amp;totGmp.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; BY var1-var3;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC TRANSPOSE DATA = check OUT = check_trans (rename=(_name_=year COL1=check_volume));;&lt;/P&gt;&lt;P&gt;&amp;nbsp; VAR year_1 year_2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; BY outlet item item_no;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**************************** Period Classification *************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;DATA pos_summary_trans;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET pos_summary_trans;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format year $100.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do i = 1 %to &amp;amp;totPos.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;i. le 3 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; rename var&amp;amp;i. = &amp;amp;&amp;amp;posvar&amp;amp;i..;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;i. ge 4 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if lowcase(_name_) = "var&amp;amp;i." then date =&amp;nbsp; mdy(substr("&amp;amp;&amp;amp;posvar&amp;amp;i..",1,2)*1,substr("&amp;amp;&amp;amp;posvar&amp;amp;i..",4,2)*1,substr("&amp;amp;&amp;amp;posvar&amp;amp;i..",7,2)*1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pos_sales = col1 *1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop col1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if date ge &amp;amp;year_1_start. and date le &amp;amp;year_1_end. then year="year_1";&lt;/P&gt;&lt;P&gt;&amp;nbsp; if date ge &amp;amp;year_2_start. and date le &amp;amp;year_2_end. then year="year_2";&lt;/P&gt;&lt;P&gt;&amp;nbsp; if year ne "";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data = pos_summary_trans (obs=5);format date ddmmyy6.; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;DATA gmp_trans;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET gmp_trans;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format year $100.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do i = 1 %to &amp;amp;totgmp.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;i. le 3 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; rename var&amp;amp;i. = &amp;amp;&amp;amp;gmpvar&amp;amp;i..;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;i. ge 4 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if lowcase(_name_) = "var&amp;amp;i." then date =&amp;nbsp; mdy(substr("&amp;amp;&amp;amp;gmpvar&amp;amp;i..",1,2)*1,substr("&amp;amp;&amp;amp;gmpvar&amp;amp;i..",4,2)*1,substr("&amp;amp;&amp;amp;gmpvar&amp;amp;i..",7,2)*1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; gmp_sales = col1 *1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop col1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if date ge &amp;amp;year_1_start. and date le &amp;amp;year_1_end. then year="year_1";&lt;/P&gt;&lt;P&gt;&amp;nbsp; if date ge &amp;amp;year_2_start. and date le &amp;amp;year_2_end. then year="year_2";&lt;/P&gt;&lt;P&gt;&amp;nbsp; if year ne "";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data = gmp_trans(obs=5); run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**************************** Aggregation of Facts *************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;create table pos_summary_trans_agg as&lt;/P&gt;&lt;P&gt;&amp;nbsp; select Outlet,Item ,year, sum(pos_sales) as pos_sales&lt;/P&gt;&lt;P&gt;&amp;nbsp; from pos_summary_trans&lt;/P&gt;&lt;P&gt;&amp;nbsp; group by Outlet,Item,year;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;create table gmp_trans_agg as&lt;/P&gt;&lt;P&gt;&amp;nbsp; select Outlet,Item ,year, sum(gmp_sales) as gmp_sales&lt;/P&gt;&lt;P&gt;&amp;nbsp; from gmp_trans&lt;/P&gt;&lt;P&gt;&amp;nbsp; group by Outlet,Item,year;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;create table check_trans2 as&lt;/P&gt;&lt;P&gt;&amp;nbsp; select b.name as outlet, a.item, a.item_no, a.year, sum(a.check_volume) as check_volume&lt;/P&gt;&lt;P&gt;&amp;nbsp; from check_trans a, filter b&lt;/P&gt;&lt;P&gt;&amp;nbsp; where a.outlet = b.market&lt;/P&gt;&lt;P&gt;&amp;nbsp; group by Outlet,Item,year;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*********************** Get unique agg combination ****************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT NODUPKEY DATA = pos_summary_trans_agg (keep = outlet item year) out= p; by outlet item year; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT NODUPKEY DATA = gmp_trans_agg (keep = outlet item year) out= g; by outlet item year; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT NODUPKEY DATA = check_trans2 (keep = outlet item year) out= c; by outlet item year; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p%end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g%end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c%end;&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SORT NODUPKEY DATA = output; by outlet item year; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*********************** Final merge and calculations ****************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT DATA = pos_summary_trans_agg; by outlet item year; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT DATA = gmp_trans_agg; by outlet item year; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;PROC SORT DATA = check_trans2; by outlet item year; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; MERGE output (in=a)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos_summary_trans_agg (keep=outlet item year pos_sales)&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gmp_trans_agg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (keep=outlet item year gmp_sales)&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_trans2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (keep=outlet item year check_volume)&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by outlet item year;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if a;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;compare. in (1 2 3) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if pos_sales=. then pos_sales=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format pos_sales 12.2;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;compare. in (1 2 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if gmp_sales=. then gmp_sales=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format gmp_sales 12.2;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;compare. in (1 3 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if check_volume=. then check_volume=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format check_volume 12.2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;compare. in (1 2) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format pos_vs_gmp percent10.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pos_vs_gmp =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (pos_sales-gmp_sales)/pos_sales;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;compare. in (1 4) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format gmp_vs_checksyn percent10.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; gmp_vs_checksyn = (gmp_sales-check_volume)/gmp_sales;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;compare. in (1 3) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format pos_vs_checksyn percent10.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pos_vs_checksyn = (pos_sales-check_volume)/pos_sales;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC EXPORT DATA=output OUTFILE="&amp;amp;outfile." DBMS=CSV REPLACE; RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend vars;&lt;/P&gt;&lt;P&gt;%vars;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 14:31:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204584#M267061</guid>
      <dc:creator>rahul88888</dc:creator>
      <dc:date>2015-03-18T14:31:19Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204585#M267062</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You do not mention what you want help with.&amp;nbsp; Personally I can't look through that whole program, so I would suggest your run it, debug as far as you can (i.e. options mlogic mprint symbolgen), test parts of it, maybe even remove the macro parts and get it working as normal code.&amp;nbsp; If you have a question on a specific part, then post the question with test data/required output.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 15:11:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204585#M267062</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-03-18T15:11:32Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204586#M267063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you kidding...?&lt;/P&gt;&lt;P&gt;Ok, what kind of help do you need? Doesn't it work?&lt;/P&gt;&lt;P&gt;If you didn't write it yourself, talk to the responsible.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 15:11:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204586#M267063</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2015-03-18T15:11:47Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204587#M267064</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The macro as such is actually not that complicated. What is not working? What error do you get?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 15:29:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204587#M267064</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-03-18T15:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204588#M267065</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are errors at multiple levels&lt;/P&gt;&lt;P&gt;1st Data set is not created . Export procedure is failing.&lt;/P&gt;&lt;P&gt;2nd Aggregation level its saying the field is numeric while the structure says its numeric&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 15:35:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204588#M267065</guid>
      <dc:creator>rahul88888</dc:creator>
      <dc:date>2015-03-18T15:35:40Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204589#M267066</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There can be many reasons for such errors and you will need to investigate and resolve the causes. You need to start with the very first error thrown and resolve it. The re-run the code and see if there are still errors and if yes resolve the next "first" error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use options which give you more log messages like MRPINT MERROR etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It's sometimes rather hard to debut SAS code generated by a&amp;nbsp; macro. One way to go: Copy the MPRINT: log lines and then strip out the "MPRINT: " part. The run the remaining SAS code in a SAS Enterprise Guide session. This will allow you to better investigate if the error is caused by source data which is different than expected or SAS code generated which is logically wrong or if there are no errors on this level then you know that things go wrong on macro level.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you don' t post your SAS log with the Errors in it then we can't give you any further advice. If you post SAS Log then please turn on options like "mprint mlogic merror source2"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 22:07:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204589#M267066</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-03-18T22:07:50Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204590#M267067</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank You very Much for taking out time and looking at the macro &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I got an error with the input files that i had provided following is the error that i got&amp;nbsp; it says it has &lt;SPAN style="font-size: 11pt; font-family: Calibri, sans-serif; line-height: 1.5em; color: #1f497d;"&gt;&lt;SPAN lang="en-US"&gt;no variable called “&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="line-height: 1.5em; color: purple; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;SALESUNITS&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 11pt; font-family: Calibri, sans-serif; line-height: 1.5em; color: #1f497d;"&gt;&lt;SPAN lang="en-US"&gt;”. Instead, I&amp;nbsp; have one called “SALES UNITS-192 OZ EQU CASE BASIS”.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt;So when sorting the table : The following “ERROR” appears.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;MPRINT(VARS):&amp;nbsp;&amp;nbsp; PROC SORT DATA = check(where=(upcase(compress(fact_desc))="SALESUNITS"));&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;MPRINT(VARS):&amp;nbsp;&amp;nbsp; BY outlet item item_no;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;MLOGIC(VARS):&amp;nbsp; %IF condition &amp;amp;compare. in (1 2 3) is TRUE&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: Input data set is empty.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: There were 0 observations read from the data set WORK.CHECK.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE UPCASE(COMPRESS(fact_desc))='SALESUNITS';&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: The data set WORK.CHECK has 0 observations and 7 variables.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;NOTE: PROCEDURE SORT used (Total process time):&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt;After, when making the proc sql since the variable doesn’t exist merging fails.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-family: Calibri, sans-serif;"&gt;&lt;SPAN style="font-size: 11pt;"&gt;I am changing the code so that it can &lt;/SPAN&gt;&lt;SPAN style="font-size: 14.6666669845581px;"&gt;accommodate&lt;/SPAN&gt;&lt;SPAN style="font-size: 11pt;"&gt; this. I am just hoping it solves the error. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;Thank you once again. I never expected so quick response &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt; thank you sir &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: #1f497d; font-size: 11pt; font-family: Calibri, sans-serif;"&gt;&lt;SPAN lang="en-US"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="color: #212121; font-family: wf_segoe-ui_normal, 'Segoe UI', 'Segoe WP', Tahoma, Arial, sans-serif; font-size: 15px; background-color: #ffffff;"&gt;&lt;SPAN style="color: purple; font-size: 10pt; font-family: 'Courier New';"&gt;&lt;SPAN lang="en-US" style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2015 03:20:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204590#M267067</guid>
      <dc:creator>rahul88888</dc:creator>
      <dc:date>2015-03-19T03:20:13Z</dc:date>
    </item>
    <item>
      <title>Re: need help with this Tricky macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204591#M267068</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The code bit you've posted just tells us that there are no rows. It doesn't tell us that a variable is missing which you expect in a downstream process. So what's the actual error you're getting. If you want our support then please post the full log.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2015 13:41:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/need-help-with-this-Tricky-macro/m-p/204591#M267068</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-03-19T13:41:43Z</dc:date>
    </item>
  </channel>
</rss>

