<?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: Lag equivalent in PROC SQL in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168899#M12964</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;thanks a lot. I understood.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 29 Sep 2014 06:22:06 GMT</pubDate>
    <dc:creator>rajeshm</dc:creator>
    <dc:date>2014-09-29T06:22:06Z</dc:date>
    <item>
      <title>Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168886#M12951</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is there an equivalent to the lag function in a PROC SQL step?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Marco&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT: re-posting this as I posted it in the wrong section earlier&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Apr 2014 11:22:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168886#M12951</guid>
      <dc:creator>Lupacante</dc:creator>
      <dc:date>2014-04-04T11:22:13Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168887#M12952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Generally, SQL doesn't consider sets to be ordered, so you have to force order on them by adding some sort of variable to match back to the dataset.&amp;nbsp; For example, if you have a dataset HAVE like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Business_Date date&lt;/P&gt;&lt;P&gt;Val1 num&lt;/P&gt;&lt;P&gt;Val2 num&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you could do this:&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1.business_date,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1.val1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t1.val2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t2.val1 as Prior_Vall1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t2.val2 as Prior_Val2&lt;/P&gt;&lt;P&gt;from&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; have t1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; left outer join have t2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on t1.business_date-1=t2.business_date;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Apr 2014 12:18:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168887#M12952</guid>
      <dc:creator>DBailey</dc:creator>
      <dc:date>2014-04-04T12:18:31Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168888#M12953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you don't have a natural row id variable (such as business date in &lt;A __default_attr="246082" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://communities.sas.com/"&gt;&lt;/A&gt;'s example), you can enforce row numbers, either by using the unsupported and fairly undocumented function monotonic(), or by storing the row numbers explicitly in the source table ("have").&lt;/P&gt;&lt;P&gt;But, at this point, it is quite clear that both programming and performance wise, this is not a good idea. This is easier to code in a data step, and joins always comes with a higher cost than a table scan.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 06 Apr 2014 05:17:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168888#M12953</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2014-04-06T05:17:17Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168889#M12954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As said the SQL approach has a complete different set of axioma-s eg data is considered not being ordered/sorted as opposed in other language e.g. the SAS-datastep where the data is assumed to be ordered.&lt;/P&gt;&lt;P&gt;The result is you cannot do some things in Proc SQL that you can do in the SAS-datastep as of this kind of axioma-s.&lt;/P&gt;&lt;P&gt;Answer: no there&amp;nbsp; is not&amp;nbsp; something like the lag function in SQL&amp;nbsp; (ansi Sql).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sometimes there are aggregate functions that will do your original functional request, that is only a subset of all possibilities you could solve within a data-step or 3GL language.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Before SAS 9&amp;nbsp; within SAS proc sql was solved in a sequential/single process byt that monotonic could work.&lt;/P&gt;&lt;P&gt;Do not trust any ordering with proc sql anymore as it was changed to be multi-threading, that is several sub-processes can run on selected parts of the data. It will using the axioma of not having a defined ordering.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 06 Apr 2014 08:18:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168889#M12954</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-04-06T08:18:13Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168890#M12955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You would need to sort your data, otherwise monotonic seems to work ok.&amp;nbsp; Its not ideal though, you will notice that it throws some weird results when using where/order by's etc. so I would generally avoid it.&amp;nbsp; An example below.&amp;nbsp; What I would look at is what you are trying to achieve with using a lag function, and how the problem could be solved using SQL rather than trying to translate a specific function between two different languages. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; attrib name format=$20. qtr result format=best.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile datalines;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input name $ qtr result;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;Terry 3 12&lt;/P&gt;&lt;P&gt;Terry 4 13&lt;/P&gt;&lt;P&gt;Rob&amp;nbsp;&amp;nbsp; 1 90&lt;/P&gt;&lt;P&gt;Rob&amp;nbsp;&amp;nbsp; 3 91&lt;/P&gt;&lt;P&gt;Terry 1 11&lt;/P&gt;&lt;P&gt;Terry 2 15&lt;/P&gt;&lt;P&gt;Rob&amp;nbsp;&amp;nbsp; 4 50&lt;/P&gt;&lt;P&gt;Rob&amp;nbsp;&amp;nbsp; 3 51&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by name qtr;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table WORK.WANT as&lt;/P&gt;&lt;P&gt;&amp;nbsp; select&amp;nbsp; BASE.*,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PREV.QTR as PREV_QTR,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PREV.RESULT as PREV_RESULT&lt;/P&gt;&lt;P&gt;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp; (select *,MONOTONIC() as IND from WORK.HAVE) BASE&lt;/P&gt;&lt;P&gt;&amp;nbsp; left join (select *,MONOTONIC() as IND from WORK.HAVE) PREV&lt;/P&gt;&lt;P&gt;&amp;nbsp; on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BASE.NAME=PREV.NAME&lt;/P&gt;&lt;P&gt;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BASE.IND=PREV.IND+1;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Apr 2014 08:38:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168890#M12955</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-04-07T08:38:13Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168891#M12956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@rw9, Not all problems can be solved with SQL.&amp;nbsp; There is always a search for the right tool for a problem.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;The acceptance of a limitation should be part of a learning process. That is the why behind mathematics.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Apr 2014 09:22:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168891#M12956</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-04-07T09:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168892#M12957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To be honest. I will not recommend to use RW9's code. &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;MONOTONIC()&lt;/SPAN&gt; is undocumented function which means you are going to suffer the risk from it .Sometime you are going to wrong result.I will use ODS to get that index row.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;

ods listing close;
ods output sql_results=have;
proc sql number;
 select name,age from sashelp.class;
quit;
ods listing;
proc sql;
create table want as
 select *,(select age&amp;nbsp; from have where row=a.row-1) as lag_age
&amp;nbsp; from have as a;
quit;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Apr 2014 10:51:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168892#M12957</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-04-07T10:51:12Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168893#M12958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Very nice, Ksharp! Great to have you back.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Apr 2014 18:43:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168893#M12958</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2014-04-07T18:43:58Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168894#M12959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HaiKuo,&lt;/P&gt;&lt;P&gt;Hope we have a meet in near future.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Ke Shan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Apr 2014 06:49:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168894#M12959</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-04-09T06:49:19Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168895#M12960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;good answer. can you help me the similar as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Empid&amp;nbsp;&amp;nbsp; year&amp;nbsp;&amp;nbsp;&amp;nbsp; salary&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 44&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 88&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Requirement:&amp;nbsp;&amp;nbsp;&amp;nbsp; Need a 4th column representing percentage of salary change for an empid&amp;nbsp; by years.&lt;/P&gt;&lt;P&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;&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; datastep-&amp;gt;lag function-&amp;gt; we can do&lt;/P&gt;&lt;P&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;&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; proc sql-&amp;gt; how to do this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Sep 2014 13:07:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168895#M12960</guid>
      <dc:creator>rajeshm</dc:creator>
      <dc:date>2014-09-25T13:07:40Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168896#M12961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Should start a new topic for this as this post is closed.&amp;nbsp; You can do the same as above without the need for monotonic as you can use year.&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table WANT as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.EMPID,&lt;/P&gt;&lt;P&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; A.YEAR,&lt;/P&gt;&lt;P&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; A.SALARY,&lt;/P&gt;&lt;P&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; (A.SALARY / B.SALARY)&amp;nbsp; * 100 as SAL_PCENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAVE A&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; left join&amp;nbsp;&amp;nbsp;&amp;nbsp; HAVE B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.EMPID=B.EMPID&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.YEAR=B.YEAR+1;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Sep 2014 13:25:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168896#M12961</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-09-25T13:25:16Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168897#M12962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK. Assuming the data as simple as it is :&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;&lt;PRE&gt;data have;
input Empid&amp;nbsp;&amp;nbsp; year&amp;nbsp;&amp;nbsp;&amp;nbsp; salary ;
cards;
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011&amp;nbsp;&amp;nbsp;&amp;nbsp; 11
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012&amp;nbsp;&amp;nbsp;&amp;nbsp; 13
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20
2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 44&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; 2012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22
2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 88
;
run;
proc sql;
create table want as 
 select *,(salary-(select salary from have where Empid=a.Empid and year=a.year-1) )/salary as per format=percentn8.2
&amp;nbsp; from have as a;
&amp;nbsp; quit;

&lt;/PRE&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>Thu, 25 Sep 2014 13:32:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168897#M12962</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-09-25T13:32:54Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168898#M12963</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;thanks a lot. i understood.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Sep 2014 06:21:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168898#M12963</guid>
      <dc:creator>rajeshm</dc:creator>
      <dc:date>2014-09-29T06:21:34Z</dc:date>
    </item>
    <item>
      <title>Re: Lag equivalent in PROC SQL</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168899#M12964</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;thanks a lot. I understood.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Sep 2014 06:22:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Lag-equivalent-in-PROC-SQL/m-p/168899#M12964</guid>
      <dc:creator>rajeshm</dc:creator>
      <dc:date>2014-09-29T06:22:06Z</dc:date>
    </item>
  </channel>
</rss>

