<?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: Case Then Over Partition in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379692#M65584</link>
    <description>&lt;P&gt;Sure Tom...will try to break it up and solve. if not i will provide sample input and out datasets so that you can guide me on how to resolve this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually I was just given the code. I need to figure out what date they are trying to get and i was unable to understand that whole piece i posted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But will re look into it and give you more details so that you can help me out.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot for your immediate response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank You&lt;/P&gt;</description>
    <pubDate>Thu, 27 Jul 2017 12:55:55 GMT</pubDate>
    <dc:creator>SDasari2</dc:creator>
    <dc:date>2017-07-27T12:55:55Z</dc:date>
    <item>
      <title>Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379490#M65572</link>
      <description>&lt;P&gt;I am trying to convert the code below into PROC SQL but &amp;nbsp;the 'over partition' is not recognized&lt;/P&gt;&lt;P&gt;i need to derive the&amp;nbsp;&lt;SPAN&gt;PRIMARY_SVC_DATE from the below logic.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CASE WHEN SLF.FROM_SRVC_DT_KEY &amp;lt;&amp;gt;-99 THEN TO_DATE(SLF.FROM_SRVC_DT_KEY,'YYYY-MM-DD') ELSE&lt;BR /&gt;(&lt;BR /&gt;(CASE WHEN (CASE CHF.CLM_STMT_FROM_DT_KEY WHEN -99 THEN MIN(SLF.FROM_SRVC_DT_KEY) OVER (PARTITION BY CHED.SRC_CLM_ID)&lt;/P&gt;&lt;P&gt;ELSE (CASE WHEN CHF.CLM_STMT_FROM_DT_KEY &amp;gt;(DECODE(CHF.CLM_STMT_TO_DT_KEY,-99,CHF.CLM_STMT_FROM_DT_KEY,CHF.CLM_STMT_TO_DT_KEY))&lt;/P&gt;&lt;P&gt;THEN MIN(SLF.FROM_SRVC_DT_KEY) OVER (PARTITION BY CHED.SRC_CLM_ID)&lt;BR /&gt;WHEN CHF.CLM_STMT_FROM_DT_KEY &amp;lt;= (DECODE( CHF.CLM_STMT_TO_DT_KEY,-99,CHF.CLM_STMT_FROM_DT_KEY, CHF.CLM_STMT_TO_DT_KEY))&lt;/P&gt;&lt;P&gt;THEN CHF.CLM_STMT_FROM_DT_KEY END ) END) = -99&lt;BR /&gt;THEN NULL ELSE&lt;BR /&gt;TO_DATE((CASE CHF.CLM_STMT_FROM_DT_KEY WHEN -99 THEN MIN(SLF.FROM_SRVC_DT_KEY) OVER (PARTITION BY CHED.SRC_CLM_ID)&lt;/P&gt;&lt;P&gt;ELSE (CASE WHEN CHF.CLM_STMT_FROM_DT_KEY &amp;gt;(DECODE(CHF.CLM_STMT_TO_DT_KEY,-99,CHF.CLM_STMT_FROM_DT_KEY,CHF.CLM_STMT_TO_DT_KEY))&lt;/P&gt;&lt;P&gt;THEN MIN(SLF.FROM_SRVC_DT_KEY) OVER (PARTITION BY CHED.SRC_CLM_ID)&lt;BR /&gt;WHEN CHF.CLM_STMT_FROM_DT_KEY &amp;lt;= (DECODE( CHF.CLM_STMT_TO_DT_KEY,-99,CHF.CLM_STMT_FROM_DT_KEY, CHF.CLM_STMT_TO_DT_KEY))&lt;/P&gt;&lt;P&gt;THEN CHF.CLM_STMT_FROM_DT_KEY END ) END), 'YYYY-MM-DD') END)) END AS PRIMARY_SVC_DATE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for any help you can give me.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2017 18:06:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379490#M65572</guid>
      <dc:creator>SDasari2</dc:creator>
      <dc:date>2017-07-26T18:06:03Z</dc:date>
    </item>
    <item>
      <title>Re: Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379499#M65574</link>
      <description>&lt;P&gt;Figure out what it is trying to go and then code it in a different way.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would say that program is just way to complicated a query, certainly way more complicated that I would try to using SQL. &amp;nbsp;It probably wouldn't look as complicated if you could write it in a data step code so that you could use normal IF/THEN logic instead of having to use CASE statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You cannot use OVER so if you need to calculate values by groups of variable either create tables with the values in advance or code them as sub-queries. Either way join them back to your main table to make them available in your CASE (or IF/THEN) logic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you can provide an explanation for what it is trying to do then perhaps someone can suggest easier (or at least easier for humans to read) way to do it.&lt;/P&gt;
&lt;P&gt;Provide sample input and output data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jul 2017 18:28:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379499#M65574</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-07-26T18:28:30Z</dc:date>
    </item>
    <item>
      <title>Re: Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379692#M65584</link>
      <description>&lt;P&gt;Sure Tom...will try to break it up and solve. if not i will provide sample input and out datasets so that you can guide me on how to resolve this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually I was just given the code. I need to figure out what date they are trying to get and i was unable to understand that whole piece i posted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But will re look into it and give you more details so that you can help me out.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot for your immediate response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank You&lt;/P&gt;</description>
      <pubDate>Thu, 27 Jul 2017 12:55:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/379692#M65584</guid>
      <dc:creator>SDasari2</dc:creator>
      <dc:date>2017-07-27T12:55:55Z</dc:date>
    </item>
    <item>
      <title>Re: Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383505#M65592</link>
      <description>&lt;P&gt;Here is the sample data. From the 1st 3 dates need to derive the Primary_svc_date. I understood the logic and listed the primary_svc_date, but need help in the writing the code in sql escecially the over/partition by claim_ID&lt;/P&gt;&lt;P&gt;THEN MIN(SLF.FROM_SRVC_DT_KEY) OVER (PARTITION BY CHED.SRC_CLM_ID)&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;seq_memb_id&lt;/TD&gt;&lt;TD&gt;SRC_CLM_ID&lt;/TD&gt;&lt;TD&gt;FROM_SRVC_DT_KEY&lt;/TD&gt;&lt;TD&gt;CLM_STMT_FROM_DT_KEY&lt;/TD&gt;&lt;TD&gt;CLM_STMT_TO_DT_KEY&lt;/TD&gt;&lt;TD&gt;PRIMARY_SVC_DATE&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8000000&lt;/TD&gt;&lt;TD&gt;571931701&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8000000&lt;/TD&gt;&lt;TD&gt;571931701&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1000000&lt;/TD&gt;&lt;TD&gt;571999093&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1000000&lt;/TD&gt;&lt;TD&gt;571999093&lt;/TD&gt;&lt;TD&gt;20150624&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150624&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1000000&lt;/TD&gt;&lt;TD&gt;571999093&lt;/TD&gt;&lt;TD&gt;20150617&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150617&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1000000&lt;/TD&gt;&lt;TD&gt;571999093&lt;/TD&gt;&lt;TD&gt;20150619&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150619&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2000000&lt;/TD&gt;&lt;TD&gt;571999037&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2000000&lt;/TD&gt;&lt;TD&gt;571999037&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3000000&lt;/TD&gt;&lt;TD&gt;575438002&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3000000&lt;/TD&gt;&lt;TD&gt;575438002&lt;/TD&gt;&lt;TD&gt;20151230&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3000000&lt;/TD&gt;&lt;TD&gt;575438002&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;TD&gt;20151211&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4000000&lt;/TD&gt;&lt;TD&gt;575417314&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4000000&lt;/TD&gt;&lt;TD&gt;575417314&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4000000&lt;/TD&gt;&lt;TD&gt;575417314&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;TD&gt;-99&lt;/TD&gt;&lt;TD&gt;20151222&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5000000&lt;/TD&gt;&lt;TD&gt;575974798&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5000000&lt;/TD&gt;&lt;TD&gt;575974798&lt;/TD&gt;&lt;TD&gt;20150623&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5000000&lt;/TD&gt;&lt;TD&gt;575974798&lt;/TD&gt;&lt;TD&gt;20150624&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5000000&lt;/TD&gt;&lt;TD&gt;575974798&lt;/TD&gt;&lt;TD&gt;20150625&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5000000&lt;/TD&gt;&lt;TD&gt;575974798&lt;/TD&gt;&lt;TD&gt;20150618&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;TD&gt;20150803&lt;/TD&gt;&lt;TD&gt;20150616&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 27 Jul 2017 21:17:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383505#M65592</guid>
      <dc:creator>SDasari2</dc:creator>
      <dc:date>2017-07-27T21:17:31Z</dc:date>
    </item>
    <item>
      <title>Re: Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383509#M65594</link>
      <description>&lt;P&gt;So that is close to providing us with some data. Better if you post it in a usable form.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  infile cards dsd dlm='|' truncover ;
  length seq_memb_id SRC_CLM_ID $ 10
     FROM_SRVC_DT_KEY CLM_STMT_FROM_DT_KEY CLM_STMT_TO_DT_KEY 8
     PRIMARY_SVC_DATE 8
  ;
  informat PRIMARY_SVC_DATE yymmdd.;
  format PRIMARY_SVC_DATE yymmdd10. ;
  input seq_memb_id--PRIMARY_SVC_DATE ;
cards;
8000000|571931701|-99|20151211|20151211|20151211
8000000|571931701|-99|20151211|20151211|20151211
1000000|571999093|20150616|20150616|20150803|20150616
1000000|571999093|20150624|20150616|20150803|20150624
1000000|571999093|20150617|20150616|20150803|20150617
1000000|571999093|20150619|20150616|20150803|20150619
2000000|571999037|20151222|20151222|20151222|20151222
2000000|571999037|20151222|20151222|20151222|20151222
3000000|575438002|20151211|-99|20151211|20151211
3000000|575438002|20151230|-99|20151211|20151211
3000000|575438002|20151211|-99|20151211|20151211
4000000|575417314|20151222|20151222|-99|20151222
4000000|575417314|20151222|20151222|-99|20151222
4000000|575417314|20151222|20151222|-99|20151222
5000000|575974798|20150616|20150616|20150803|20150616
5000000|575974798|20150623|20150616|20150803|20150616
5000000|575974798|20150624|20150616|20150803|20150616
5000000|575974798|20150625|20150616|20150803|20150616
5000000|575974798|20150618|20150616|20150803|20150616
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Not sure what the -99 mean, so I didn't try to read those "date_key" varaibles as actual dates.&lt;/P&gt;
&lt;P&gt;But you probably need to understand what the -99 means since it will have an impact on what you want to use as the MIN() value.&lt;/P&gt;
&lt;P&gt;So the to find the min data over id type query in simple old plan vanilla SQLthat would have worked 30 years ago you can code like this.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql ;
  select src_clm_id,MIN(FROM_SRVC_DT_KEY) as min_from_srvc_dt_key
  from have 
  group by SRC_CLM_ID
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So then you can join that back so you can then just refer to it using the new name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 27 Jul 2017 21:36:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383509#M65594</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-07-27T21:36:56Z</dc:date>
    </item>
    <item>
      <title>Re: Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383924#M65620</link>
      <description>&lt;P&gt;Thanks a lot Tom. I got the result i was expecting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you so much for assisting me in getting the end result.&lt;/P&gt;</description>
      <pubDate>Fri, 28 Jul 2017 20:42:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383924#M65620</guid>
      <dc:creator>SDasari2</dc:creator>
      <dc:date>2017-07-28T20:42:59Z</dc:date>
    </item>
    <item>
      <title>Re: Case Then Over Partition</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383970#M65621</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/84305"&gt;@SDasari2&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;If you've got a solution then please mark the answer as solution.&lt;/P&gt;</description>
      <pubDate>Sat, 29 Jul 2017 04:22:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Case-Then-Over-Partition/m-p/383970#M65621</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2017-07-29T04:22:08Z</dc:date>
    </item>
  </channel>
</rss>

