<?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: Logic help required? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91033#M19258</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not quite sure I follow what you need...It sounds like you want a cal_money to be a running total of money transactions. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assuming the data is sorted by id, and transaction order...&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;retain Running_Balance 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if first.id then Running_Balance=0;&lt;/P&gt;&lt;P&gt;Running_Balance = Running_Balance - money;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;results in this dataset:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV align="center"&gt;&lt;TABLE cellpadding="3" cellspacing="0" class="Table" frame="box" rules="all" summary="Procedure SQL: Query Results"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data"&gt;10&lt;/TD&gt;&lt;TD class="r Data"&gt;10&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data"&gt;20&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data"&gt;10&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-40&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-30&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data"&gt;5&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-5&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data"&gt;4&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data"&gt;4&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-8&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this isn't what you're looking for, you'll need to provide some clarification.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Jan 2013 14:47:21 GMT</pubDate>
    <dc:creator>DBailey</dc:creator>
    <dc:date>2013-01-30T14:47:21Z</dc:date>
    <item>
      <title>Logic help required?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91032#M19257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a dataset which have the Id and money he spent. If for any instance, he got some negative money, then it needs to be checked from downwards and needs to be negated like the variable (Cal_money).Can you help me with the logic please:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Money&amp;nbsp;&amp;nbsp;&amp;nbsp; Cal_money&lt;/P&gt;&lt;P&gt;1&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;1&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; 0&lt;/P&gt;&lt;P&gt;1&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; 0&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&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; 0&lt;/P&gt;&lt;P&gt;2&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;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2&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;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -8&amp;nbsp;&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;Thank you so much&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Jan 2013 13:48:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91032#M19257</guid>
      <dc:creator>bnarang</dc:creator>
      <dc:date>2013-01-30T13:48:38Z</dc:date>
    </item>
    <item>
      <title>Re: Logic help required?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91033#M19258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not quite sure I follow what you need...It sounds like you want a cal_money to be a running total of money transactions. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assuming the data is sorted by id, and transaction order...&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;retain Running_Balance 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if first.id then Running_Balance=0;&lt;/P&gt;&lt;P&gt;Running_Balance = Running_Balance - money;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;results in this dataset:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV align="center"&gt;&lt;TABLE cellpadding="3" cellspacing="0" class="Table" frame="box" rules="all" summary="Procedure SQL: Query Results"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data"&gt;10&lt;/TD&gt;&lt;TD class="r Data"&gt;10&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data"&gt;20&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data"&gt;10&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-40&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;1&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-30&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data"&gt;5&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-5&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data"&gt;4&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data"&gt;4&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="r Data"&gt;2&lt;/TD&gt;&lt;TD class="r Data" nowrap="nowrap"&gt;-8&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;TD class="r Data"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this isn't what you're looking for, you'll need to provide some clarification.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Jan 2013 14:47:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91033#M19258</guid>
      <dc:creator>DBailey</dc:creator>
      <dc:date>2013-01-30T14:47:21Z</dc:date>
    </item>
    <item>
      <title>Re: Logic help required?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91034#M19259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For one of my project, I have to write a piece of code which can negate any money made by ID (account). Let's say my dataset looks like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp; Money&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp; &lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -3&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is my input dataset. My output dataset should look like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp; Money&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Money_cal&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&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;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; &lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; 1&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -4&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;if this makes sense.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jan 2013 04:24:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91034#M19259</guid>
      <dc:creator>bnarang</dc:creator>
      <dc:date>2013-01-31T04:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: Logic help required?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91035#M19260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this approach&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data d1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile datalines;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input id money;&lt;/P&gt;&lt;P&gt;&amp;nbsp; seq = _n_;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1 2&lt;/P&gt;&lt;P&gt;1 2&lt;/P&gt;&lt;P&gt;1 3&lt;/P&gt;&lt;P&gt;1 -3&lt;/P&gt;&lt;P&gt;2 1&lt;/P&gt;&lt;P&gt;2 2&lt;/P&gt;&lt;P&gt;2 2&lt;/P&gt;&lt;P&gt;2 -4&lt;/P&gt;&lt;P&gt;;&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 sort data=d1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id descending seq;&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 d2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set d1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain mny 8.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.id then mny= 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mny = mny + money; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if mny &amp;lt; 0 then cal_money = 0; else cal_money = mny; * in else, if don't need to accumulate the positive, use money instead of mny;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop mny;&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 sort data=d2 out=d3(drop=seq);&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id seq;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jan 2013 07:01:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Logic-help-required/m-p/91035#M19260</guid>
      <dc:creator>sknguru</dc:creator>
      <dc:date>2013-01-31T07:01:38Z</dc:date>
    </item>
  </channel>
</rss>

