<?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: data check in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278887#M56149</link>
    <description>&lt;P&gt;Hi....I have a dataset that contains a list of unique records for customers who are approved for specific products during a specific time period. The Approval dataset looks like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="368"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="87"&gt;Customer_ID&lt;/TD&gt;
&lt;TD width="75"&gt;Product_ID&lt;/TD&gt;
&lt;TD width="99"&gt;Effective_Date&lt;/TD&gt;
&lt;TD width="107"&gt;Expiration_Date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1127654&lt;/TD&gt;
&lt;TD&gt;20160101&lt;/TD&gt;
&lt;TD&gt;20160430&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1200782&lt;/TD&gt;
&lt;TD&gt;20160201&lt;/TD&gt;
&lt;TD&gt;20160525&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;20151223&lt;/TD&gt;
&lt;TD&gt;20160325&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;20160401&lt;/TD&gt;
&lt;TD&gt;20160428&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;20160515&lt;/TD&gt;
&lt;TD&gt;20160615&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1163452&lt;/TD&gt;
&lt;TD&gt;20160201&lt;/TD&gt;
&lt;TD&gt;20160630&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to be able to check another dataset (Claims_Data) that contains all the claims submitted for these same customers and obtain the following:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="492"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="87"&gt;Customer_ID&lt;/TD&gt;
&lt;TD width="75"&gt;Product_ID&lt;/TD&gt;
&lt;TD width="113"&gt;Count_Approved&lt;/TD&gt;
&lt;TD width="144"&gt;Count_Not_Approved&lt;/TD&gt;
&lt;TD width="73"&gt;No_Claims&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1127654&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1200782&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1163452&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Count_Approved is the number of claims where the claim_date from the Claims_Data dataset&amp;nbsp; is between the Effective_Date and Expiration Date for the respective customer for the each Product_ID.&lt;/P&gt;
&lt;P&gt;Count_Not_Approved is the number of claims submitted where the claim_date is outside the range for the Effective_Date and Expiration Date for the respective customer for the each Product_ID.&lt;/P&gt;
&lt;P&gt;As it is possible that customers may be approved for products and yet they may not have submitted any claims for the product. In this case, No_Claims=1 would be entered to keep track. Any suggestions. Thanks,&lt;/P&gt;</description>
    <pubDate>Tue, 21 Jun 2016 01:13:23 GMT</pubDate>
    <dc:creator>twildone</dc:creator>
    <dc:date>2016-06-21T01:13:23Z</dc:date>
    <item>
      <title>re: data check</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278887#M56149</link>
      <description>&lt;P&gt;Hi....I have a dataset that contains a list of unique records for customers who are approved for specific products during a specific time period. The Approval dataset looks like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="368"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="87"&gt;Customer_ID&lt;/TD&gt;
&lt;TD width="75"&gt;Product_ID&lt;/TD&gt;
&lt;TD width="99"&gt;Effective_Date&lt;/TD&gt;
&lt;TD width="107"&gt;Expiration_Date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1127654&lt;/TD&gt;
&lt;TD&gt;20160101&lt;/TD&gt;
&lt;TD&gt;20160430&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1200782&lt;/TD&gt;
&lt;TD&gt;20160201&lt;/TD&gt;
&lt;TD&gt;20160525&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;20151223&lt;/TD&gt;
&lt;TD&gt;20160325&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;20160401&lt;/TD&gt;
&lt;TD&gt;20160428&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;20160515&lt;/TD&gt;
&lt;TD&gt;20160615&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1163452&lt;/TD&gt;
&lt;TD&gt;20160201&lt;/TD&gt;
&lt;TD&gt;20160630&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to be able to check another dataset (Claims_Data) that contains all the claims submitted for these same customers and obtain the following:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="492"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="87"&gt;Customer_ID&lt;/TD&gt;
&lt;TD width="75"&gt;Product_ID&lt;/TD&gt;
&lt;TD width="113"&gt;Count_Approved&lt;/TD&gt;
&lt;TD width="144"&gt;Count_Not_Approved&lt;/TD&gt;
&lt;TD width="73"&gt;No_Claims&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1127654&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1232&lt;/TD&gt;
&lt;TD&gt;1200782&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1097862&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1345&lt;/TD&gt;
&lt;TD&gt;1163452&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Count_Approved is the number of claims where the claim_date from the Claims_Data dataset&amp;nbsp; is between the Effective_Date and Expiration Date for the respective customer for the each Product_ID.&lt;/P&gt;
&lt;P&gt;Count_Not_Approved is the number of claims submitted where the claim_date is outside the range for the Effective_Date and Expiration Date for the respective customer for the each Product_ID.&lt;/P&gt;
&lt;P&gt;As it is possible that customers may be approved for products and yet they may not have submitted any claims for the product. In this case, No_Claims=1 would be entered to keep track. Any suggestions. Thanks,&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jun 2016 01:13:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278887#M56149</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2016-06-21T01:13:23Z</dc:date>
    </item>
    <item>
      <title>Re: re: data check</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278896#M56153</link>
      <description>Perhaps you could get started with a SQL FULL JOIN with a BETWEEN - AND join criteria. &lt;BR /&gt;To get the aggregation use CASE within each SUM() to figure out if the joined result should contribute to respective measure.</description>
      <pubDate>Tue, 21 Jun 2016 02:23:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278896#M56153</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-06-21T02:23:11Z</dc:date>
    </item>
    <item>
      <title>Re: re: data check</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278925#M56162</link>
      <description>&lt;P&gt;Data step solution:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data approval;
input
  customer_id
  product_id
  effective_date:yymmdd8.
  expiration_date:yymmdd8.
;
format
  effective_date
  expiration_date
    yymmddn8.
;
cards;
1232 1127654 20160101 20160430
1232 1200782 20160201 20160525
1345 1097862 20151223 20160325
1345 1097862 20160401 20160428
1345 1097862 20160515 20160615
1345 1163452 20160201 20160630
;
run;

data claims_data;
input
  customer_id
  product_id
  claim_date:yymmdd8.
;
format claim_date yymmddn8.;
cards;
1232 1127654 20160320
1232 1127654 20160517
;
run;

data want (
  keep=customer_id product_id count_approved count_not_approved no_claims
);
merge
  approval (in=a)
  claims_data (in=b)
;
by customer_id product_id;
if a;
if not b
then do;
  count_approved = 0;
  count_not_approved = 0;
  no_claims = 1;
  output;
end;
else do;
  if first.product_id
  then do;
    count_approved = 0;
    count_not_approved = 0;
    no_claims = .;
  end;
  if effective_date &amp;lt;= claim_date &amp;lt;= expiration_date
  then count_approved + 1;
  else count_not_approved + 1;
  if last.product_id then output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can expand the test data in claims_data to verify more test cases, but I think it solves your requirements.&lt;/P&gt;
&lt;P&gt;With your data, it might be necessary to sort the datasets first by customer_id product_id.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jun 2016 06:43:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-data-check/m-p/278925#M56162</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-06-21T06:43:56Z</dc:date>
    </item>
  </channel>
</rss>

