<?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: How to assign values by comparing dates in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/287053#M58996</link>
    <description>&lt;PRE&gt;
OK. Add one more GROUP variable to make it unique.




DATA EX;
INFORMAT exdate DATE9.;
INPUT Subid exdate exdose period;
FORMAT exdate DATE9.;
DATALINES;
1 07FEB2016 5 1
1 17FEB2016 10 2
1 27FEB2016 20 3
2 07JAN2016 20 1
2 17JAN2016 30 2
2 27JAN2016 40 3
3 01MAR2016 20 1
3 15APR2016 50 2
3 30APR2016 40 3
;
DATA AE;
INFORMAT AEDATE DATE9.;
INPUT Subid AEDATE ;
FORMAT AEDATE DATE9.;
DATALINES;
1 18FEB2016
1 16FEB2016
2 17JAN2016
3 01MAR2016
;
proc sql;
select a.*,
coalesce(b.exdose,(select exdose from EX where Subid=a.Subid and exdate=a.AEDATE )) as exdose
 from AE as a left join EX as b 
  on a.Subid=b.Subid and a.AEDATE gt b.exdate
   group by a.Subid,a.AEDATE 
    having a.AEDATE-b.exdate=min(a.AEDATE-b.exdate);
quit;




&lt;/PRE&gt;</description>
    <pubDate>Tue, 26 Jul 2016 00:48:35 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2016-07-26T00:48:35Z</dc:date>
    <item>
      <title>How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286750#M58888</link>
      <description>&lt;P&gt;Dear,&lt;/P&gt;&lt;P&gt;I have two datasets. One EX and other AE. I need create a variable called LASTDOSE in my AE dataset by comparing AEdate with exdate.&lt;/P&gt;&lt;P&gt;My code is working for all observations except where AEDATE and EXDATE are equal and period=1. Please help.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;EX&lt;/P&gt;&lt;P&gt;Subid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exdate &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exdose &amp;nbsp; &amp;nbsp; &amp;nbsp; period&lt;BR /&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;07FEB2016 &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; 1&lt;BR /&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 17FEB2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;BR /&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;27FEB2016&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; 3&lt;BR /&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 07JAN2016 &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;1&lt;BR /&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17JAN2016 &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;2&lt;BR /&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;27JAN2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;40 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01 MAR2016 &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;1&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;15APR2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;50 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30APR2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 40 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;AE&lt;/P&gt;&lt;P&gt;Subid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AEDATE&lt;BR /&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18FEB2016&lt;BR /&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17JAN2016&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;01MAR2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output needed.&lt;/P&gt;&lt;P&gt;Subid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AEDATE &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; Lastdose&lt;BR /&gt;1 &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; 18FEB2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10&lt;BR /&gt;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; &amp;nbsp; &amp;nbsp; &amp;nbsp;17JAN2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;/P&gt;&lt;P&gt;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; &amp;nbsp; &amp;nbsp; &amp;nbsp; 01MAR2016 &amp;nbsp; &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;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For SUBID=1 &amp;nbsp; &amp;nbsp;10 is the last dose taken before AEdate&amp;nbsp;&lt;BR /&gt;For SUBID=2 &amp;nbsp; &amp;nbsp; 20 is the last dose taken before AEdate (For this subject one &amp;nbsp;EXDATE, is equal to AEDATE. That dose cannot be taken as per Specs because lastdose=exdose at &amp;nbsp;exdate should be less than aedate)&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For SUBID=3 &amp;nbsp; &amp;nbsp;20 is the dose taken on AEdate (Because AEDATE=EXDATE, my code produces dot for third observation. As per specs if period=1 then last dose=exdose where aedate=exdate can be considered.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please help in my code&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;proc sql;&lt;BR /&gt;create table dose as&lt;BR /&gt;select a.*,b.exdose&lt;BR /&gt;from adaemrd as a left join EX5 as b&lt;BR /&gt;on a.usubjid=b.usubjid and a.AESDT-b.exstdtc1 &amp;gt;0&lt;BR /&gt;group by a.usubjid,a.aesdt&lt;BR /&gt;having a.Aesdt-b.exstdtc1=min(a.Aesdt-b.exstdtc1);&lt;BR /&gt;quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 03:43:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286750#M58888</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2016-07-25T03:43:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286758#M58892</link>
      <description>&lt;P&gt;I tried to do the same using datastep.&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want to stick with proc sql then you need to revisit your joining condition and may be you would require to use case condition&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA EX;&lt;BR /&gt;INFORMAT exdate DATE9.;&lt;/P&gt;&lt;P&gt;INPUT Subid exdate exdose period;&lt;BR /&gt;FORMAT exdate DATE9.;&lt;BR /&gt;DATALINES;&lt;BR /&gt;1 07FEB2016 5 1&lt;BR /&gt;1 17FEB2016 10 2&lt;BR /&gt;1 27FEB2016 20 3&lt;BR /&gt;2 07JAN2016 20 1&lt;BR /&gt;2 17JAN2016 30 2&lt;BR /&gt;2 27JAN2016 40 3&lt;BR /&gt;3 01MAR2016 20 1&lt;BR /&gt;3 15APR2016 50 2&lt;BR /&gt;3 30APR2016 40 3&lt;BR /&gt;;;&lt;/P&gt;&lt;P&gt;DATA AE;&lt;BR /&gt;INFORMAT AEDATE DATE9.;&lt;BR /&gt;INPUT Subid AEDATE ;&lt;BR /&gt;FORMAT AEDATE DATE9.;&lt;BR /&gt;DATALINES;&lt;BR /&gt;1 18FEB2016&lt;BR /&gt;2 17JAN2016&lt;BR /&gt;3 01MAR2016&lt;BR /&gt;;;&lt;/P&gt;&lt;P&gt;DATA OUT_PUT(KEEP= SUBID AEDATE LASTDOSE);&lt;BR /&gt;MERGE AE (IN=A) EX(IN=B);&lt;BR /&gt;RETAIN LASTDOSE;&lt;BR /&gt;BY SUBID;&lt;BR /&gt;IF AEDATE EQ EXDATE AND PERIOD =1 THEN LASTDOSE=EXDOSE;&lt;BR /&gt;IF AEDATE GT EXDATE THEN LASTDOSE=EXDOSE;&lt;BR /&gt;IF LAST.SUBID THEN OUTPUT;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;DATA T3(KEEP= SUBID AEDATE LASTDOSE);&lt;BR /&gt;MERGE T2 (IN=A) T1(IN=B);&lt;BR /&gt;RETAIN LASTDOSE;&lt;BR /&gt;BY SUBID;&lt;BR /&gt;IF AEDATE EQ EXDATE AND PERIOD =1 THEN LASTDOSE=EXDOSE;&lt;BR /&gt;IF AEDATE GT EXDATE THEN LASTDOSE=EXDOSE;&lt;BR /&gt;IF LAST.SUBID THEN OUTPUT;&lt;BR /&gt;RUN;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 04:55:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286758#M58892</guid>
      <dc:creator>RahulG</dc:creator>
      <dc:date>2016-07-25T04:55:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286771#M58899</link>
      <description>&lt;P&gt;My solution would look like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=ex;
by subid descending exdate;
run;

data want (keep=subid aedate lastdose);
merge
  ae (in=a)
  ex (in=b)
;
by subid;
if a and b;
retain flag;
if first.subid then flag = 0;
if exdate &amp;lt;= aedate and not flag
then do;
  flag = 1;
  lastdose = exdose;
  output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The question for me remains:&lt;/P&gt;
&lt;P&gt;When do you allow to be exdate equal to aedate, and when must exdate be less than aedate to be considered valid?&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 06:26:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286771#M58899</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-07-25T06:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286781#M58902</link>
      <description>&lt;PRE&gt;

DATA EX;
INFORMAT exdate DATE9.;
INPUT Subid exdate exdose period;
FORMAT exdate DATE9.;
DATALINES;
1 07FEB2016 5 1
1 17FEB2016 10 2
1 27FEB2016 20 3
2 07JAN2016 20 1
2 17JAN2016 30 2
2 27JAN2016 40 3
3 01MAR2016 20 1
3 15APR2016 50 2
3 30APR2016 40 3
;
DATA AE;
INFORMAT AEDATE DATE9.;
INPUT Subid AEDATE ;
FORMAT AEDATE DATE9.;
DATALINES;
1 18FEB2016
2 17JAN2016
3 01MAR2016
;
proc sql;
select a.*,b.exdose 
 from AE as a left join EX as b 
  on a.Subid=b.Subid and a.AEDATE ge b.exdate
   group by a.Subid
    having a.AEDATE-b.exdate=min(a.AEDATE-b.exdate);
quit;


&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Jul 2016 06:56:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286781#M58902</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-07-25T06:56:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286784#M58903</link>
      <description>&lt;PRE&gt;
Opps.


DATA EX;
INFORMAT exdate DATE9.;
INPUT Subid exdate exdose period;
FORMAT exdate DATE9.;
DATALINES;
1 07FEB2016 5 1
1 17FEB2016 10 2
1 27FEB2016 20 3
2 07JAN2016 20 1
2 17JAN2016 30 2
2 27JAN2016 40 3
3 01MAR2016 20 1
3 15APR2016 50 2
3 30APR2016 40 3
;
DATA AE;
INFORMAT AEDATE DATE9.;
INPUT Subid AEDATE ;
FORMAT AEDATE DATE9.;
DATALINES;
1 18FEB2016
2 17JAN2016
3 01MAR2016
;
proc sql;
select a.*,
coalesce(b.exdose,(select exdose from EX where Subid=a.Subid and exdate=a.AEDATE )) as exdose
 from AE as a left join EX as b 
  on a.Subid=b.Subid and a.AEDATE gt b.exdate
   group by a.Subid
    having a.AEDATE-b.exdate=min(a.AEDATE-b.exdate);
quit;



&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Jul 2016 07:05:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286784#M58903</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-07-25T07:05:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286789#M58904</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp﻿&lt;/a&gt;&amp;nbsp;Its always a pleasure to read your code.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 07:34:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286789#M58904</guid>
      <dc:creator>RahulG</dc:creator>
      <dc:date>2016-07-25T07:34:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286974#M58967</link>
      <description>&lt;P&gt;Thank you very much for the code. For your question, AEDATE=EXDATE when period =1 becuase with my code lastdose='dot' when aedate=exdate. I will look where I need to modify in your code to get my output.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 18:20:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286974#M58967</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2016-07-25T18:20:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286986#M58975</link>
      <description>&lt;P&gt;Thank you very much. Your code worked. But in my dataset there are multiple AE dates for each subject. I am not getting the output all aedates.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please look at second OBS. This is OBS is not seen in the output with your code. Thanks. Please help.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;eg:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;sub aedate&lt;/P&gt;&lt;PRE&gt;1 18FEB2016
1 16FEB2016&lt;BR /&gt;2 17JAN2016
3 01MAR2016&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output needed.&lt;/P&gt;&lt;P&gt;Subid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AEDATE &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; Lastdose&lt;BR /&gt;1 &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; 18FEB2016 &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 16FEB2016 &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;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; &amp;nbsp; &amp;nbsp; &amp;nbsp; 17JAN2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;/P&gt;&lt;P&gt;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; &amp;nbsp; &amp;nbsp; &amp;nbsp; 01MAR2016 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20 &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 18:39:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/286986#M58975</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2016-07-25T18:39:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to assign values by comparing dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/287053#M58996</link>
      <description>&lt;PRE&gt;
OK. Add one more GROUP variable to make it unique.




DATA EX;
INFORMAT exdate DATE9.;
INPUT Subid exdate exdose period;
FORMAT exdate DATE9.;
DATALINES;
1 07FEB2016 5 1
1 17FEB2016 10 2
1 27FEB2016 20 3
2 07JAN2016 20 1
2 17JAN2016 30 2
2 27JAN2016 40 3
3 01MAR2016 20 1
3 15APR2016 50 2
3 30APR2016 40 3
;
DATA AE;
INFORMAT AEDATE DATE9.;
INPUT Subid AEDATE ;
FORMAT AEDATE DATE9.;
DATALINES;
1 18FEB2016
1 16FEB2016
2 17JAN2016
3 01MAR2016
;
proc sql;
select a.*,
coalesce(b.exdose,(select exdose from EX where Subid=a.Subid and exdate=a.AEDATE )) as exdose
 from AE as a left join EX as b 
  on a.Subid=b.Subid and a.AEDATE gt b.exdate
   group by a.Subid,a.AEDATE 
    having a.AEDATE-b.exdate=min(a.AEDATE-b.exdate);
quit;




&lt;/PRE&gt;</description>
      <pubDate>Tue, 26 Jul 2016 00:48:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-assign-values-by-comparing-dates/m-p/287053#M58996</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-07-26T00:48:35Z</dc:date>
    </item>
  </channel>
</rss>

