<?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: Calculating duration for overlaps and non-overlaps  using  another method not macro in SAS Studio</title>
    <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724924#M9875</link>
    <description>&lt;P&gt;Perhaps not the cleanest way of doing it, but does this work?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input id$ 1-6 job 7-8  jobyrin 9-11  jobyrout 18-20  icode$ 23-27 lung$ 29-35;
    datalines;
OSa13 3 73       78   6191  cacase
OSa30 1 39       46   7181  cacase
OSa30 3 56       64   6191  cacase
OSa73 1 23       31   7181  popcon
OSa73 2 31       42   5130  popcon
OSf26 2 70       70   6191  popcon
OSj17 3 60       75   6191  cacase
OSj17 4 65       70   6191  cacase
    ;
run;

data codes;
    input icode $ code $;
    datalines;
6191 janitor
7181 baker
5130 plumber
    ;
run;

proc sql;
    create table have_with_codes as
    select h.*
          ,c.code
          ,jobYrOut - jobYrIn as duration
    from have h
    left join codes c
        on h.icode = c.icode
    order by id, job, jobYrIn;
quit;

data have_modify_duration;
    set have_with_codes;
    by id;
    retain in_prev out_prev;
    if duration = 0
        then duration = 0.5;
    if first.id
        then do;
            in_prev = jobYrIn;
            out_prev = jobYrOut;
        end;
    else
        do;
            if (in_prev &amp;lt; JobYrIn and JobYrOut &amp;lt; out_prev)
                then duration = .;
        end;
    if duration ne .;
    drop in_prev out_prev lung job jobYrIn jobYrOut;
run;

proc transpose data=have_modify_duration
    out=transposed (drop=_name_) suffix=_dur;
    by id;
    id code;
run;

proc sql;
    create table want as
    select id
          ,coalesce(janitor_dur,0) as janitor_dur
          ,case when janitor_dur = . then 0 else 1 end as janitor_ever
          ,coalesce(baker_dur,0) as baker_dur
          ,case when baker_dur = . then 0 else 1 end as baker_ever
          ,coalesce(plumber_dur,0) as plumber_dur
          ,case when plumber_dur = . then 0 else 1 end as plumber_ever
    from transposed;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 09 Mar 2021 17:34:09 GMT</pubDate>
    <dc:creator>mklangley</dc:creator>
    <dc:date>2021-03-09T17:34:09Z</dc:date>
    <item>
      <title>Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724729#M9866</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;I would like to calculate durations &amp;nbsp;(jobyrout-jobyrin) for overlap and non overlap years without using macro.&lt;/P&gt;
&lt;P&gt;The macro didn’t work well with large datasets having long arrays; it worked&amp;nbsp; for a sample (small) dataset, so, I am obliged to find another method that will achieve the same aim, even if the method is long, I would prefer that to macro.&lt;/P&gt;
&lt;P&gt;I would appreciate if someone knows of any other method to achieve my aim. The dataset, my objectives and expected output &amp;nbsp;are given below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I really need help; I have no clue, please.&lt;/P&gt;
&lt;P&gt;Thanks in advance for your help.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;/**Data set*/&lt;/P&gt;
&lt;P&gt;data full_tdata;&lt;BR /&gt;input id$ 1-6 job 7-8&amp;nbsp; jobyrin 9-11&amp;nbsp; jobyrout 18-20&amp;nbsp; icode$ 23-27 lung$ 29-35;&lt;BR /&gt;datalines;&lt;BR /&gt;OSa13&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 73&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; 78&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;BR /&gt;OSa30&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 39&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; 46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 7181&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;BR /&gt;OSa30&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56&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; 64&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;BR /&gt;OSa73&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 23&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;31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 7181&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popcon&lt;BR /&gt;OSa73&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31&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; 42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 5130&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popcon&lt;BR /&gt;OSf26&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 70&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; 70&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popcon&lt;BR /&gt;OSj17&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60&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; 75&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;BR /&gt;OSj17&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;&amp;nbsp;&amp;nbsp; 65&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; 70&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;/P&gt;
&lt;P&gt;OSj17&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60&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; 75&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;BR /&gt;OSj17&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;&amp;nbsp;&amp;nbsp; 65&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; 70&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 6191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacase&lt;BR /&gt;;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Objectives&lt;/P&gt;
&lt;P&gt;1) No overlap at all &amp;nbsp;ie. .ids osa13 (duration=78-73=5) and osa30 (duration=46-39=7 for icode7181 and 64-56=8 for icode 6191).&lt;/P&gt;
&lt;P&gt;2) The END of the previous matches the START of the current ie. id osa73 ; duration=31-23=8 for icode 7181 and 42-31=11 for icode 5130.&lt;/P&gt;
&lt;P&gt;3) The START and END are the same &amp;nbsp;ie. osf26:&amp;nbsp; duration is automatically assigned 0.5 (70 to 70, not 0 but 0.5).&lt;/P&gt;
&lt;P&gt;4) The START AND END of current is between START and END of previous. Eg. osj 17 jobs 3 and 4.; duration will be from 60 to 75 (ie. 75-60=15).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Expected output:&lt;/P&gt;
&lt;P&gt;id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; janitor_dur&amp;nbsp; &amp;nbsp; janitor_ever&amp;nbsp; &amp;nbsp;baker_dur&amp;nbsp; &amp;nbsp; &amp;nbsp; baker_ever&amp;nbsp; plumber_dur&amp;nbsp; &amp;nbsp; &amp;nbsp;plumber_ever&lt;BR /&gt;osa13&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;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&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 &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;0 &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;0&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; &lt;BR /&gt;osa30&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;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&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;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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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;0&lt;BR /&gt;osa73&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&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&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; &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&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;1&lt;BR /&gt;osf26&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.5&amp;nbsp; &amp;nbsp; &amp;nbsp; &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; 0&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&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; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;BR /&gt;osj17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;15&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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; 0&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&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; 0&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Icode 6191=janitor: &amp;nbsp;if janitor(6191) is present (janitor_ever=1, otherwise janitor_ever=0) &amp;nbsp;; janitor_dur is the duration (jobyrout-jobyrin); &amp;nbsp;icode 7181=baker, 5130=plumber.&lt;/P&gt;
&lt;P&gt;1) No overlap at all &amp;nbsp;ie. .ids osa13 (duration=78-73=5) and osa30 (duration=46-39=7 for icode7181 and 64-56=8 for icode 6191).&lt;/P&gt;
&lt;P&gt;2) The END of the previous matches the START of the current ie. id osa73 ; duration=31-23=8 for icode 7181 and 42-31=11 for icode 5130.&lt;/P&gt;
&lt;P&gt;3) The START and END are the same &amp;nbsp;ie. osf26:&amp;nbsp; duration is automatically assigned 0.5 (70 to 70, not 0 but 0.5).&lt;/P&gt;
&lt;P&gt;4) The START AND END of current is between START and END of previous. Eg. osj 17 jobs 3 and 4.; duration will be from 60 to 75 (ie. 75-60=15).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks very much in advance for your assistance.&lt;/P&gt;
&lt;P&gt;ak.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Mar 2021 01:14:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724729#M9866</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-09T01:14:28Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724924#M9875</link>
      <description>&lt;P&gt;Perhaps not the cleanest way of doing it, but does this work?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input id$ 1-6 job 7-8  jobyrin 9-11  jobyrout 18-20  icode$ 23-27 lung$ 29-35;
    datalines;
OSa13 3 73       78   6191  cacase
OSa30 1 39       46   7181  cacase
OSa30 3 56       64   6191  cacase
OSa73 1 23       31   7181  popcon
OSa73 2 31       42   5130  popcon
OSf26 2 70       70   6191  popcon
OSj17 3 60       75   6191  cacase
OSj17 4 65       70   6191  cacase
    ;
run;

data codes;
    input icode $ code $;
    datalines;
6191 janitor
7181 baker
5130 plumber
    ;
run;

proc sql;
    create table have_with_codes as
    select h.*
          ,c.code
          ,jobYrOut - jobYrIn as duration
    from have h
    left join codes c
        on h.icode = c.icode
    order by id, job, jobYrIn;
quit;

data have_modify_duration;
    set have_with_codes;
    by id;
    retain in_prev out_prev;
    if duration = 0
        then duration = 0.5;
    if first.id
        then do;
            in_prev = jobYrIn;
            out_prev = jobYrOut;
        end;
    else
        do;
            if (in_prev &amp;lt; JobYrIn and JobYrOut &amp;lt; out_prev)
                then duration = .;
        end;
    if duration ne .;
    drop in_prev out_prev lung job jobYrIn jobYrOut;
run;

proc transpose data=have_modify_duration
    out=transposed (drop=_name_) suffix=_dur;
    by id;
    id code;
run;

proc sql;
    create table want as
    select id
          ,coalesce(janitor_dur,0) as janitor_dur
          ,case when janitor_dur = . then 0 else 1 end as janitor_ever
          ,coalesce(baker_dur,0) as baker_dur
          ,case when baker_dur = . then 0 else 1 end as baker_ever
          ,coalesce(plumber_dur,0) as plumber_dur
          ,case when plumber_dur = . then 0 else 1 end as plumber_ever
    from transposed;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Mar 2021 17:34:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724924#M9875</guid>
      <dc:creator>mklangley</dc:creator>
      <dc:date>2021-03-09T17:34:09Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724926#M9876</link>
      <description>&lt;P&gt;One suspects that part of the problem is pointed out in the way you phrase this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;I would like to calculate durations (jobyrout-jobyrin) for overlap and non overlap years without using macro.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Your data no where shows evidence of anything resembling a "year" from names or values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If 73 is a year I strongly suggest you use a 4 digit year because as soon as a value like 10 appears it is no longer clear whether you may be dealing with 1910 or 2010. I think this is a valid concern since your very small example shows 23 as a value. So if you have "recent" data then you may have an in value like 99 and out of 05. Which your example calculation would yield 5-99 = -94. Which I strongly suspect screws things up for what ever you are attempting. And might have had part of an issue with the "macro".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You list objectives but do not state how to show them, or at least not in a way that makes much sense to me.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Mar 2021 17:48:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724926#M9876</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-03-09T17:48:20Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724932#M9877</link>
      <description>&lt;P&gt;Can there be more than one id/icode combination for a given year?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Mar 2021 18:12:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724932#M9877</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2021-03-09T18:12:43Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724934#M9878</link>
      <description>&lt;P&gt;I eliminated the duplicate records in your original dataset.&lt;/P&gt;
&lt;P&gt;Using LAG() to find the previous end year and look ahead to find the next start year you can decide which observations need to have their duration adjusted by 0.5.&amp;nbsp; Then simple SUMMARY and TRANSPOSE will generate the wide dataset.&amp;nbsp; If you really need those additional EVER flag varaibles you can add those and also set zeros for the jobs never held by an individual.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data full_tdata;
  input id$ job  jobyrin  jobyrout  icode$ lung$ ;
datalines;
OSa13 3 1973 1978 6191 cacase
OSa30 1 1939 1946 7181 cacase
OSa30 3 1956 1964 6191 cacase
OSa73 1 1923 1931 7181 popcon
OSa73 2 1931 1942 5130 popcon
OSf26 2 1970 1970 6191 popcon
OSj17 3 1960 1975 6191 cacase
OSj17 4 1965 1970 6191 cacase
;

proc sort  ;
  by id jobyrin jobyrout ;
run;

proc format ;
 value $icode '6191'='janitor' '7181'='baker' '5130'='plumber' other='other';
run;

data duration ;
  set full_tdata;
  by id jobyrin;
  set full_tdata(firstobs=2 keep=jobyrin rename=(jobyrin=next_yr)) full_tdata(obs=1 drop=_all_);
  prev_yr=lag(jobyrout);
  if first.id then prev_yr=.;
  if last.id then next_yr=.;
  duration = jobyrout - jobyrin + 1 - 0.5*(prev_yr=jobyrin or next_yr=jobyrout);
  job_name = put(icode,$icode.);
run;

proc print;
run;

proc summary data=duration nway;
  by id;
  class job_name ;
  var duration ;
  output out=summary sum=;
run;

proc print;
run;

proc transpose data=summary out=wide(drop=_name_) suffix=_dur;
  by id ;
  id job_name ;
  var duration ;
run;

proc print;
run;

data want;
  set wide ;
  array dur janitor_dur baker_dur plumber_dur;
  array ever  janitor_ever baker_ever plumber_ever;
  do over dur;
    dur = sum(0,dur);
    ever = dur &amp;gt; 0;
  end;
run;

proc print;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Is this what you wanted from that input?&amp;nbsp; If not then explain what you want to do differently.&lt;/P&gt;
&lt;PRE&gt;Obs    id     job   jobyrin   jobyrout   icode    lung    next_yr   prev_yr   duration   job_name

 1    OSa13    3      1973      1978     6191    cacase        .         .       6.0     janitor
 2    OSa30    1      1939      1946     7181    cacase     1956         .       8.0     baker
 3    OSa30    3      1956      1964     6191    cacase        .      1946       9.0     janitor
 4    OSa73    1      1923      1931     7181    popcon     1931         .       8.5     baker
 5    OSa73    2      1931      1942     5130    popcon        .      1931      11.5     plumber
 6    OSf26    2      1970      1970     6191    popcon        .         .       1.0     janitor
 7    OSj17    3      1960      1975     6191    cacase     1965         .      16.0     janitor
 8    OSj17    4      1965      1970     6191    cacase        .      1975       6.0     janitor
&amp;#12;

Obs     id      job_name    _TYPE_    _FREQ_    duration

 1     OSa13    janitor        1         1         6.0
 2     OSa30    baker          1         1         8.0
 3     OSa30    janitor        1         1         9.0
 4     OSa73    baker          1         1         8.5
 5     OSa73    plumber        1         1        11.5
 6     OSf26    janitor        1         1         1.0
 7     OSj17    janitor        1         2        22.0
&amp;#12;

                janitor_    baker_    plumber_
Obs     id         dur        dur        dur

 1     OSa13        6          .          .
 2     OSa30        9         8.0         .
 3     OSa73        .         8.5       11.5
 4     OSf26        1          .          .
 5     OSj17       22          .          .
&amp;#12;

                janitor_    baker_    plumber_    janitor_    baker_    plumber_
Obs     id         dur        dur        dur        ever       ever       ever

 1     OSa13        6         0.0        0.0          1          0          0
 2     OSa30        9         8.0        0.0          1          1          0
 3     OSa73        0         8.5       11.5          0          1          1
 4     OSf26        1         0.0        0.0          1          0          0
 5     OSj17       22         0.0        0.0          1          0          0

&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Mar 2021 18:35:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/724934#M9878</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-03-09T18:35:11Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/725326#M9893</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Thanks for your time to come out with that output. It is not what I am looking for but it is very close to the answer.&lt;/P&gt;
&lt;P&gt;For eg. for id osa13, the duration should be 78-73 = 5, instead of 6. For osf26, it should be 70-70= 0.5 instead of 1. I will try to manipulate your code to see if I will obtain the expected output.&lt;/P&gt;
&lt;P&gt;I appreciate your assistance. Your approach look quite straightforward.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ak.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Mar 2021 02:17:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/725326#M9893</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-11T02:17:54Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/725329#M9894</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/190754"&gt;@ak2011&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Thanks for your time to come out with that output. It is not what I am looking for but it is very close to the answer.&lt;/P&gt;
&lt;P&gt;For eg. for id osa13, the duration should be 78-73 = 5, instead of 6. For osf26, it should be 70-70= 0.5 instead of 1. I will try to manipulate your code to see if I will obtain the expected output.&lt;/P&gt;
&lt;P&gt;I appreciate your assistance. Your approach look quite straightforward.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ak.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Not sure I understand the logic of that way of counting but try:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  duration = jobyrout - jobyrin + 0.5*(prev_yr=jobyrin or next_yr=jobyrout or jobyrin=jobyrout);
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But that seems to treat the same time period differently if it is split between two jobs.&lt;/P&gt;
&lt;P&gt;Should the time preiod from 1923 to 1942 counted as 19 years or 20 years?&lt;/P&gt;
&lt;P&gt;What if we split it into 5 different jobs then how many years should it be counted as?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data full_tdata;
  input id$ job  jobyrin  jobyrout  icode$ lung$ ;
datalines;
OSa73 1 1923 1931 7181 popcon
OSa73 2 1931 1942 5130 popcon
OSa73a 1 1923 1931 7181 popcon
OSa73b 2 1931 1942 5130 popcon
OSa73c 2 1923 1942 5130 popcon
OSf26 2 1970 1970 6191 popcon
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;                 baker_    plumber_    janitor_
Obs      id        dur        dur         dur

 1     OSa73       8.5       11.5          .
 2     OSa73a      8.0         .           .
 3     OSa73b       .        11.0          .
 4     OSa73c       .        19.0          .
 5     OSf26        .          .          0.5
&lt;/PRE&gt;</description>
      <pubDate>Thu, 11 Mar 2021 02:50:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/725329#M9894</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-03-11T02:50:23Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726927#M9902</link>
      <description>Hello Tom,&lt;BR /&gt;Thanks again for your time. The duration from 1923 to 1942 equals 19. If split between 5 different jobs, it will still be counted as 19 years: from 1923 to 1942  = 19 years.&lt;BR /&gt;ak.</description>
      <pubDate>Tue, 16 Mar 2021 22:24:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726927#M9902</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-16T22:24:05Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726929#M9903</link>
      <description>Hello,&lt;BR /&gt;You method works! Thanks very much.&lt;BR /&gt;&lt;BR /&gt;ak.</description>
      <pubDate>Tue, 16 Mar 2021 22:36:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726929#M9903</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-16T22:36:18Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726931#M9904</link>
      <description>Hello,&lt;BR /&gt;Yes if the year overlaps. Eg. id osh77 job 1 jobyrin 63 jobyrout 66 icode 6121&lt;BR /&gt;                                                 osh77 job 2 jobyrin 66 jobyrout 70 icode 6121&lt;BR /&gt;Thank you. &lt;BR /&gt;ak.</description>
      <pubDate>Tue, 16 Mar 2021 22:43:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726931#M9904</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-16T22:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating duration for overlaps and non-overlaps  using  another method not macro</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726932#M9905</link>
      <description>Ok.&lt;BR /&gt;Thanks.</description>
      <pubDate>Tue, 16 Mar 2021 22:43:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Calculating-duration-for-overlaps-and-non-overlaps-using-another/m-p/726932#M9905</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-16T22:43:57Z</dc:date>
    </item>
  </channel>
</rss>

