<?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: Sas Macro Help. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900098#M355738</link>
    <description>I can do that, but the problem is , i want to automate this piece of work, so wont it be better to just have the macro running to read the data whole time ?</description>
    <pubDate>Thu, 26 Oct 2023 09:21:00 GMT</pubDate>
    <dc:creator>MJM11111</dc:creator>
    <dc:date>2023-10-26T09:21:00Z</dc:date>
    <item>
      <title>Sas Macro Help.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900089#M355733</link>
      <description>&lt;P&gt;Hi , please will someone be able to assist me - i have the following code (Code will follow) .&amp;nbsp; i need this code to read 12 months of data the data sets are as follow: how will i create a Macro to read the code with all these data sets.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;werkwm.martaccount202210&lt;/P&gt;&lt;P&gt;werkwm.martaccount202211&lt;/P&gt;&lt;P&gt;werkwm.martaccount202212&lt;/P&gt;&lt;P&gt;werkwm.martaccount202301&lt;/P&gt;&lt;P&gt;werkwm.martaccount202302&lt;/P&gt;&lt;P&gt;werkwm.martaccount202303&lt;/P&gt;&lt;P&gt;werkwm.martaccount202304&lt;/P&gt;&lt;P&gt;werkwm.martaccount202305&lt;/P&gt;&lt;P&gt;werkwm.martaccount202306&lt;/P&gt;&lt;P&gt;werkwm.martaccount202307&lt;/P&gt;&lt;P&gt;werkwm.martaccount202308&lt;/P&gt;&lt;P&gt;werkwm.martaccount- these data sets are for the prev months as its not labled- but will update at month end with 202309&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202210&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202211&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202212&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202301&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202302&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202303&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202304&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202305&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202306&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202307&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications202308&lt;/P&gt;&lt;P&gt;Werkwm.martvtraxapplications-these data sets are for the prev months as its not labled- but will update at month end with 202309&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202210&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202211&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202212&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202301&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202302&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202303&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202304&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202305&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202306&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202307&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS202308&lt;/P&gt;&lt;P&gt;WerkWM.MARTVTRAXDEALERS-&amp;nbsp;these data sets are for the prev months as its not labled- but will update at month end with 202309&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code:&lt;/P&gt;&lt;DIV&gt;data FloorplanA (keep = keyloaddate Dealref ArrDays&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Prindebt Term RateOffset DealerCode DealerName KeyIBIS ClientName MonthBook MatureDate);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set werkwm.martaccount202210;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;where Accom_FinDescript = 'Floorplan'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;and Accom_Repstatus ne 'Closed'&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and MonthBook = &amp;amp;effmonth;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rename AccoM_ArrDays = ArrDays AccoM_Prindebt=Prindebt AccoM_Term=Term AccoM_RateOffset=RateOffset DealerCode=DealerCode KeyIBIS=KeyIBIS Client_Name=ClientName MonthBook=MonthBook AccoM_MatureDate=MatureDate;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LABEL ArrDays='Arrival Days'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Prindebt='Principal Debt'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Term='Term in Months'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;RateOffset='Rate Offset'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DealerCode='Dealer Code'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DealerName='Dealer Name'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;KeyIBIS='KeyIBIS'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ClientName='Client Name'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MonthBook='Month Booked'&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MatureDate='Maturity Date';&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Data FloorplanAll;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set FloorplanA&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FloorplanB;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/*Daily Tables gevat in die stap- omdat die table tables upate en daar&lt;/DIV&gt;&lt;DIV&gt;nie veel veranderinge is nie.*/&lt;/DIV&gt;&lt;DIV&gt;data FloorplanApps&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(keep= VTraxM_varCustomerNo&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decPrice&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decDocFee&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxd_decPrincipleDebt&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decServiceFee&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decTotalInterest&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varLegalName&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varCurrStatus&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_dtCurrStatus&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_KeyDateSettle&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;decDaysOnBook&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;KeyIBIS&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rename =&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(VTraxM_varCustomerNo=CustomerNo&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decPrice=Price&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decDocFee=DocFee&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decPrincipleDebt=PrincipleDebt&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decServiceFee=ServiceFee&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decTotalInterest=TotalInterest&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varLegalName=LegalName&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varCurrStatus=CurrStatus&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_dtCurrStatus=CurrStatusDate&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_KeyDateSettle=DateSettled&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;decDaysOnBook=DaysOnBook));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;label CustomerNo="Customer Number"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Price="Price"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DocFee="Document Fee"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PrincipleDebt="Principle Debt"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ServiceFee="Service Fee"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TotalInterest="Total Interest"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LegalName="Legal Name"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CurrStatus="Current Status"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CurrStatusDate="Current Status Date"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DateSettled="Date Settled"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DaysOnBook="Days On Book";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set Werkwd.martvtraxapplications202210;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;where KeyIBIS ne (.);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;create table FloorplanJoin as &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select a.*,b.* &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from FloorplanAll a left join FloorplanApps b &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;on a.KeyIBIS=b.KeyIBIS;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sort data= FloorplanJoin;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;by Dealercode DealerName;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;data Floorplan2&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(keep= VTraxM_varCustomerNo VTraxM_bActive VTraxM_varDealerCode&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varLegalName VTraxM_decServiceFees VTraxM_decFacilityAmount &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varFacilityType VTraxM_decFacilityUtilized VTraxM_decFacilityBalance &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varDealerName VTraxM_varDealerCode &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rename= (VTraxM_varCustomerNo= CustomerNo&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_bActive= Active&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varDealerCode= DealerCode&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varLegalName=LegalName&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decServiceFees = ServiceFees&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decFacilityAmount= FacilityAmount &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varFacilityType =FacilityType&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decFacilityUtilized = FacilityUtilized&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_decFacilityBalance= FacilityBalance &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varDealerName = VarDealerName&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VTraxM_varDealerCode = VarDealerCode));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;label CustomerNo = "Customer Number"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Active = "Active Status"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DealerCode = "Dealer Code"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LegalName = "Legal Name"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ServiceFees = "Service Fees"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FacilityAmount = "Facility Amount"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FacilityType = "Facility Type"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FacilityUtilized = "Facility Utilized"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FacilityBalance = "Facility Balance"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VarDealerName = "Variable Dealer Name"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;VarDealerCode = "Variable Dealer Code";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set&amp;nbsp; WerkWD.MARTVTRAXDEALERS202210;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if VTraxd_decFacilityAmount eq 0 and VTraxd_decfacilityBalance eq 0 then&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Delete;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if&amp;nbsp; VTraxd_bActive ne 1 then&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;delete;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sort data= Floorplan2;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;by VarDealerCode VarDealerName;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Proc sql;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;create table Floorplan3 as&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;select a.*,b.*&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from FloorplanJoin a left join Floorplan2 b&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;on a.CustomerNo=b.CustomerNo;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;quit;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;proc sort data=Floorplan3;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;by VarDealerCode FacilityAmount RateOffset DocFee ServiceFees FacilityType FacilityUtilized FacilityBalance;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Create new variables that keep the first values for each group */&lt;/DIV&gt;&lt;DIV&gt;data FloorPlanDaily;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;set Floorplan3;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;by VarDealerCode FacilityAmount&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;RateOffset DocFee&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ServiceFees FacilityType&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FacilityUtilized FacilityBalance;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* If this is the first observation for a group, then keep the values */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if first.VarDealerCode&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;and first.FacilityAmount&lt;/DIV&gt;&lt;DIV&gt;and first.RateOffset&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and first.DocFee&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and first.ServiceFees&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and first.FacilityType&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and first.FacilityUtilized&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;and first.FacilityBalance then&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;do;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityAmount = FacilityAmount;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_RateOffset = RateOffset;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_DocFee = DocFee;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_ServiceFees = ServiceFees;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityType = FacilityType;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityUtilized = FacilityUtilized;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityBalance = FacilityBalance;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;end;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/* Otherwise, assign missing values */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;do;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityAmount = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_RateOffset = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_DocFee = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_ServiceFees = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityType = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityUtilized = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;new_FacilityBalance = .;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;end;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;/*Dropping the Old fields&amp;nbsp; */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;drop FacilityAmount ArrDays RateOffset DocFee ClientName&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ServiceFees FacilityType FacilityUtilized FacilityBalance;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you for your assistance.&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Thu, 26 Oct 2023 08:45:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900089#M355733</guid>
      <dc:creator>MJM11111</dc:creator>
      <dc:date>2023-10-26T08:45:21Z</dc:date>
    </item>
    <item>
      <title>Re: Sas Macro Help.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900096#M355737</link>
      <description>&lt;P&gt;Do you really need a macro to read in that datasets? Why not to use "data sets list", see example:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;libname werkwm (work);
data
  werkwm.martaccount202210
  werkwm.martaccount202211
  werkwm.martaccount202212
  werkwm.martaccount202301
  werkwm.martaccount202302
  werkwm.martaccount202303
  werkwm.martaccount202304
  werkwm.martaccount202305
  werkwm.martaccount202306
  werkwm.martaccount202307
  werkwm.martaccount202308
  werkwm.martaccount
  ;
  set  sashelp.class;
run;

options noDSNFERR; /* to use data sets list (e.g., SET A1-A111;)
                      and don't get error if any from the list is missing */
data ALL;
  set 
    werkwm.martaccount202210-werkwm.martaccount202308 werkwm.martaccount
  ;
run;
options DSNFERR;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[EDIT:]&lt;/P&gt;
&lt;P&gt;The SET statement with a "data sets list" of the form A1-A5 usually expects that all datasets A1, A2, A3, A4, and A5 exist. In you case the range&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;werkwm.martaccount202210-werkwm.martaccount202308&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;for sure will have some "gaps" (we don expect to have 202214,202215,etc.) that's why the&amp;nbsp;&lt;CODE class=" language-sas"&gt;noDSNFERR&lt;/CODE&gt; option solves the problem, basicall it says to SAS: "if a data set from the range does not exist ignore that and go to the next one"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Oct 2023 09:03:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900096#M355737</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2023-10-26T09:03:27Z</dc:date>
    </item>
    <item>
      <title>Re: Sas Macro Help.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900098#M355738</link>
      <description>I can do that, but the problem is , i want to automate this piece of work, so wont it be better to just have the macro running to read the data whole time ?</description>
      <pubDate>Thu, 26 Oct 2023 09:21:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900098#M355738</guid>
      <dc:creator>MJM11111</dc:creator>
      <dc:date>2023-10-26T09:21:00Z</dc:date>
    </item>
    <item>
      <title>Re: Sas Macro Help.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900099#M355739</link>
      <description>&lt;P&gt;Then how about something like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;libname werkwm (work);
data
  werkwm.martaccount202210
  werkwm.martaccount202211
  werkwm.martaccount202212
  werkwm.martaccount202301
  werkwm.martaccount202302
  werkwm.martaccount202303
  werkwm.martaccount202304
  werkwm.martaccount202305
  werkwm.martaccount202306
  werkwm.martaccount202307
  werkwm.martaccount202308
  werkwm.martaccount
  ;
  set  sashelp.class;
run;

%macro ListFiles(lib,ds,date);
%local start end;
%let end  = %sysfunc(intnx(Month,"&amp;amp;date."d,-1 ,S),yymmn6.);
%let start= %sysfunc(intnx(Month,"&amp;amp;date."d,-12,S),yymmn6.);
&amp;amp;lib..&amp;amp;ds.&amp;amp;start. - &amp;amp;lib..&amp;amp;ds.&amp;amp;end. &amp;amp;lib..&amp;amp;ds.
%mend;

options noDSNFERR; /* to use data sets list (e.g., SET A1-A111;)
                      and don't get error if any from the list is missing */
data ALL;
  set 
    %ListFiles(werkwm,martaccount,1sep2023);
  ;
run;
options DSNFERR;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The code still uses "noDSNFERR" option.&lt;/P&gt;
&lt;P&gt;The "date" parameter should be set for "month with no date in dataset name", in this case September 2023.&lt;/P&gt;
&lt;P&gt;Add "options Mprint;" to see how it is resolved under the hood.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Oct 2023 09:34:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900099#M355739</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2023-10-26T09:34:43Z</dc:date>
    </item>
    <item>
      <title>Re: Sas Macro Help.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900107#M355742</link>
      <description>&lt;P&gt;It's a bit hard to know your exact requirement, but if you need a list of datasets for a 12 month period, here's some (untested) code you can start with. If you want to fully automate you can use &amp;amp;sysdate in the beginning to specify your start period. Since I didn't know how you'll select the 12 month period I didn't include that in my logic.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let start=%sysfunc(intnx(month,%sysfunc(inputn(&amp;amp;end.01,yymmdd8.)),-12), yymmddn8.);
%put &amp;amp;start;

proc sql;
	select catx('.',libname,memname) into: martaccounts separated by ' '
		from dictionary.tables
		where memname between "MARTACCOUNT&amp;amp;start" and "MARTACCOUNT&amp;amp;end"
			and libname = 'WERKWM';
	select catx('.',libname,memname) into: martvtraxapplications separated by ' '
		from dictionary.tables
		where memname between "MARTVTRAXAPPLICATIONS&amp;amp;start" and "MARTVTRAXAPPLICATIONS&amp;amp;end"
			and libname = 'WERKWM';
	select catx('.',libname,memname) into: martvtraxdealers separated by ' '
		from dictionary.tables
		where memname between "MARTVTRAXDEALERS&amp;amp;start" and "MARTVTRAXDEALERS&amp;amp;end"
			and libname = 'WERKWM';
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 26 Oct 2023 10:11:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Sas-Macro-Help/m-p/900107#M355742</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2023-10-26T10:11:03Z</dc:date>
    </item>
  </channel>
</rss>

