<?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_transaction balance by day with FIFO logic in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188193#M14435</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's the code to get your balance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is the rule for calculating the Transactional Balance?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; input Date date9. ID Credit Debit;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; format Date date.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; cards;&lt;BR /&gt;01Jan2014 123 20 10&lt;BR /&gt;05Jan2014 123 0 5&lt;BR /&gt;15Jan2014 123 30 0&lt;BR /&gt;01Jan2014 456 10 0&lt;BR /&gt;09Jan2014 555 0 10&lt;BR /&gt;01Jan2014 789 15 5&lt;BR /&gt;08Jan2014 789 35 15&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by ID Date;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by ID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; retain Balance;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.ID then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Balance = Balance + Credit - Debit;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 17 Oct 2014 12:02:20 GMT</pubDate>
    <dc:creator>TomKari</dc:creator>
    <dc:date>2014-10-17T12:02:20Z</dc:date>
    <item>
      <title>SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188190#M14432</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;I am new to the SAS-EG, currently I'm trying to figure out a formula to calculate the transaction balance by day with FIFO logic, and anyone can help?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transactional Balance&lt;/P&gt;&lt;P&gt;01Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;05Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;15Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;01Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 456&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;09Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 555&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (10)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;01Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 789&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;08Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 789&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 03:58:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188190#M14432</guid>
      <dc:creator>klvn1818</dc:creator>
      <dc:date>2014-10-17T03:58:49Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188191#M14433</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you comfortable using the SAS Program window within Enterprise Guide? This would be very difficult to do using just EG tasks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 09:59:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188191#M14433</guid>
      <dc:creator>TomKari</dc:creator>
      <dc:date>2014-10-17T09:59:07Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188192#M14434</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;EM&gt;Hi Tom&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Yeap, I am okay with SAS program window, but is only &lt;SPAN data-dobid="hdw"&gt;familiar &lt;/SPAN&gt;to some of the codes. &lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 11:34:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188192#M14434</guid>
      <dc:creator>klvn1818</dc:creator>
      <dc:date>2014-10-17T11:34:25Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188193#M14435</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's the code to get your balance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is the rule for calculating the Transactional Balance?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; input Date date9. ID Credit Debit;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; format Date date.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; cards;&lt;BR /&gt;01Jan2014 123 20 10&lt;BR /&gt;05Jan2014 123 0 5&lt;BR /&gt;15Jan2014 123 30 0&lt;BR /&gt;01Jan2014 456 10 0&lt;BR /&gt;09Jan2014 555 0 10&lt;BR /&gt;01Jan2014 789 15 5&lt;BR /&gt;08Jan2014 789 35 15&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by ID Date;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by ID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; retain Balance;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.ID then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Balance = Balance + Credit - Debit;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 12:02:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188193#M14435</guid>
      <dc:creator>TomKari</dc:creator>
      <dc:date>2014-10-17T12:02:20Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188194#M14436</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good morning Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the code, i have my calculation on balance column, but I am still figuring out the logic of "transactional balance":smileyconfused:.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I try to apply the FIFO rule on "Transactional Balance" column, which the 1st debit amount have to minus off from the 1st credit amount (if any).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the 1st debit amount is greather than 1st credit amount, the balance will deduct from 2nd credit transaction...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Oct 2014 01:52:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188194#M14436</guid>
      <dc:creator>klvn1818</dc:creator>
      <dc:date>2014-10-20T01:52:11Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188195#M14437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could you walk through how you calculate it in your example, in some detail? I must admit, I can't follow it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Oct 2014 13:20:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188195#M14437</guid>
      <dc:creator>TomKari</dc:creator>
      <dc:date>2014-10-21T13:20:26Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188196#M14438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good morning Tom&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Sorry for my poor explanation.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;What I am trying to do is forecasting the expiry credit balance. The transactional balance will only exist at all the credit transaction.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Assuming, &lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I have credited 20 on 01Jan2014&lt;/LI&gt;&lt;LI&gt;Debited 10 on 01Jan2014&lt;/LI&gt;&lt;LI&gt;Another debit transaction of 5 on 5Jan2014&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;I need the 1&lt;SUP&gt;st&lt;/SUP&gt; credit transactional balance appeared as 5, which&lt;BR /&gt;is (20-(10+5))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I got another credit transaction of 30 on 15Jan2014, the transactional balance will appeared to be the same value with the credit value. This is because the 1&lt;SUP&gt;st&lt;/SUP&gt; credit transaction still with balance of 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope the above can explain better…&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Oct 2014 02:49:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188196#M14438</guid>
      <dc:creator>klvn1818</dc:creator>
      <dc:date>2014-10-23T02:49:16Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188197#M14439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or I should re-phrase as below:-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1st transaction:-&lt;/P&gt;&lt;P&gt;Credited 20 &amp;amp; debited 10 on 1Jan2014&lt;/P&gt;&lt;P&gt;transaction look alike:-&lt;/P&gt;&lt;P&gt;Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Credit Balance&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2nd Transaction :-&lt;/P&gt;&lt;P&gt;Debited 5 on&amp;nbsp; 5Jan2014&lt;/P&gt;&lt;P&gt;transaction look alike:-&lt;/P&gt;&lt;P&gt;Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Credit Balance&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&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;SPAN style="text-decoration: line-through;"&gt;10 &lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; 5 (Balance left only 5 due to second debit transaction)&lt;/P&gt;&lt;P&gt;5Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3rd Transaction :-&lt;/P&gt;&lt;P&gt;Credited 30 on 15Jan2014&lt;/P&gt;&lt;P&gt;transaction look alike:-&lt;/P&gt;&lt;P&gt;Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Credit Balance&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 (Balance remain as the 3rd transaction was not debit transaction)&lt;/P&gt;&lt;P&gt;5Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;15Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30 (Balance for this new credit transaction)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assuming the new transaction come in, 4th transaction:-&lt;/P&gt;&lt;P&gt;Debited 15 on 20Jan2014&lt;/P&gt;&lt;P&gt;transaction look alike:-&lt;/P&gt;&lt;P&gt;Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Credit Balance&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&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;SPAN style="text-decoration: line-through;"&gt;5&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 (The new debit transaction of 15 take from the this balance 1st)&lt;/P&gt;&lt;P&gt;5Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;15Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;SPAN style="text-decoration: line-through;"&gt;30&lt;/SPAN&gt;&amp;nbsp; 20 (The balance of the new debit transaction 10, (15-5) will deduct from this transaction as the previous transaction had already become 0)&lt;/P&gt;&lt;P&gt;20Jan2014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In summary, whenever there is a new debit transaction comes in, it will deduct from the what ever is left on previous credit balance 1st base on FIFO logic. by end of the day, the latest '&lt;STRONG&gt;Balance&lt;/STRONG&gt;' value, which is here is 20 have to be equal to sum of all &lt;STRONG&gt;'Credit balance'&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure this will make things even complicated? :smileyconfused:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Oct 2014 16:28:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188197#M14439</guid>
      <dc:creator>klvn1818</dc:creator>
      <dc:date>2014-10-24T16:28:31Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188198#M14440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, not surprisingly this complicates matters a fair bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think that the following implements your logic, but check it very carefully; in the ordinary course of events, I would test something like this with a large number of diverse test cases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Incidentally, the bound of 30 on the array is arbitrary...just set it to what you expect the highest number of transactions per month to be.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; input Date date9. ID Credit Debit;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; format Date date.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; cards;&lt;BR /&gt;01Jan2014 123 20 10&lt;BR /&gt;05Jan2014 123 0 5&lt;BR /&gt;15Jan2014 123 30 0&lt;BR /&gt;20Jan2014 123 0 15&lt;BR /&gt;01Jan2014 456 10 0&lt;BR /&gt;09Jan2014 555 0 10&lt;BR /&gt;01Jan2014 789 15 5&lt;BR /&gt;08Jan2014 789 35 15&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data inter1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; MonthPart = mdy(month(Date), 1, year(Date));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; CreditBalance = 0;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=inter1 out=inter2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by ID MonthPart;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data Transactions(keep=Date ID Credit Debit Balance) CreditBalances(keep=Date ID CreditBalance);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ARRAY Dates{30} Date1-Date30;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ARRAY CreditBalances{30} CreditBalance1-CreditBalance30;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; retain Balance TransactionCount Date1-Date30 CreditBalance1-CreditBalance30;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set inter2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by ID MonthPart;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.MonthPart then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TransactionCount = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; TransactionCount = TransactionCount + 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; TransactionBalance = Credit - Debit;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Balance = Balance + TransactionBalance;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dates{TransactionCount} = Date;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; CreditBalances{TransactionCount} = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if TransactionBalance &amp;gt; 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then CreditBalances{TransactionCount} = TransactionBalance; /* We have an overall credit on this transaction */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; else if TransactionBalance &amp;lt; 0 then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Overall debit...we need to go through the previous transactions to offset it against a credit balance */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TempBalance = TransactionBalance * -1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to TransactionCount;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if TempBalance &amp;gt; 0 &amp;amp; CreditBalances{i} &amp;gt; 0 then&lt;BR /&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; do;&lt;BR /&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; if CreditBalances{i} &amp;gt;= TempBalance then&lt;BR /&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; do;&lt;BR /&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; CreditBalances{i} = CreditBalances{i} - TempBalance;&lt;BR /&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; TempBalance = 0;&lt;BR /&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; end;&lt;BR /&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; else&lt;BR /&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; do;&lt;BR /&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; TempBalance = TempBalance - CreditBalances{i};&lt;BR /&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; CreditBalances{i} = 0;&lt;BR /&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; end;&lt;BR /&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; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; else; /* TransactionBalance = 0, don't need to do anything */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; output Transactions;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.MonthPart then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to TransactionCount;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date = Dates{i};&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreditBalance = CreditBalances{i};&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output CreditBalances;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; create table want as select&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T.Date,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T.ID,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debit,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Balance,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreditBalance&lt;BR /&gt;&amp;nbsp;&amp;nbsp; from Transactions T join CreditBalances C&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on (T.Date = C.Date and T.ID = C.ID)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; order by ID, Date;&lt;BR /&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Oct 2014 14:44:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188198#M14440</guid>
      <dc:creator>TomKari</dc:creator>
      <dc:date>2014-10-26T14:44:13Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188199#M14441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I like it .It is a challenge.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt; 
data have;
&amp;nbsp;&amp;nbsp; input Date date9. ID Credit Debit;
&amp;nbsp;&amp;nbsp; format Date date.;
&amp;nbsp;&amp;nbsp; cards;
01Jan2014 123 20 10
05Jan2014 123 0 5
15Jan2014 123 30 0
20Jan2014 123 0 15
01Jan2014 456 10 0
09Jan2014 555 0 10
01Jan2014 789 15 5
08Jan2014 789 35 15
run;
data want;
array x{99999} _temporary_;
n=0;
do until(last.id);
 set have;
 by id;
 n+1;
 x{n}=credit;d=debit;
 do i=1 to n;
&amp;nbsp; _d=x{i}-d;
&amp;nbsp; x{i}=ifn(( _d gt 0),_d,0);
&amp;nbsp; d=ifn((_d lt 0),abs(_d),0);
 end;
end;
n=0;
do until(last.id);
 set have;
 by id;
&amp;nbsp; n+1;
 Credit_Balance=x{n};
 output;
end;
drop d _d i;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Oct 2014 15:58:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188199#M14441</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-10-26T15:58:53Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188200#M14442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all many thanks for the script. It has been a very busy for these few weeks, and I got no time to try out yet...sorry for that. I believe it's work. haha....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway, I will try it out next week and update the status here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once again, thanks for your kind help:)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;kelvin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Nov 2014 07:43:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/188200#M14442</guid>
      <dc:creator>klvn1818</dc:creator>
      <dc:date>2014-11-06T07:43:07Z</dc:date>
    </item>
    <item>
      <title>Re: SAS_transaction balance by day with FIFO logic</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/501492#M32147</link>
      <description>&lt;P&gt;Hi Ksharp,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to implement the same logic and found out your algorithm working. But in addition to FIFO logic for calculating balance I also need to calculate aging of dates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example:&amp;nbsp;&lt;/P&gt;&lt;P&gt;Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ID&amp;nbsp; &amp;nbsp;Credit&amp;nbsp; &amp;nbsp; Debit&lt;/P&gt;&lt;P&gt;01Mar2018 123 100000 50000&lt;BR /&gt;05Mar2018 123 50000&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;15Mar2018 123 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;50000&lt;BR /&gt;20Mar2018 123 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;BR /&gt;21Mar2018 123 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 50000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would have aging calculated as 15thMarch - 1March = 14 days for first Credit.&lt;/P&gt;&lt;P&gt;Step 1:(100000-50000 = 50000)&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Step 2:(50000 - 0 = 50000)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Step 3:(50000 -&amp;nbsp;50000 = 0) = Aging for 1stmarch credit =&amp;nbsp;15thMarch - 1March = 14&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I tried by altering your algorithm&amp;nbsp;and fetching end dates was possible using criteria (Where x[i]=0). But I am not getting a hold of how do I get start date.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Oct 2018 14:09:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-transaction-balance-by-day-with-FIFO-logic/m-p/501492#M32147</guid>
      <dc:creator>mehta2626</dc:creator>
      <dc:date>2018-10-04T14:09:12Z</dc:date>
    </item>
  </channel>
</rss>

