<?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: Join data / IF in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602381#M174408</link>
    <description>It's a mistake it's 1.</description>
    <pubDate>Thu, 07 Nov 2019 13:43:19 GMT</pubDate>
    <dc:creator>WilliamB</dc:creator>
    <dc:date>2019-11-07T13:43:19Z</dc:date>
    <item>
      <title>Join data / IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602374#M174401</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I want to gather tables, adding up data, such as the number of "months" and the number of "connections".&lt;/P&gt;&lt;P&gt;But I want to create an "ACTIVE" variable.&lt;BR /&gt;If "Sum Month" is greater than or equal to Connect then Active = "Yes" otherwise "No".&lt;/P&gt;&lt;P&gt;Thanks a lot for your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Table 1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Table 2&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;Clients&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Age&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;Thomas&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Clients&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Month&lt;/TD&gt;&lt;TD&gt;Connexion&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Nelson&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Thomas&lt;/TD&gt;&lt;TD&gt;30SET2019&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Xavier&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Thomas&lt;/TD&gt;&lt;TD&gt;31OCT2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Florine&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Nelson&lt;/TD&gt;&lt;TD&gt;31OCT2019&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Xavier&lt;/TD&gt;&lt;TD&gt;31JUL2019&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Xavier&lt;/TD&gt;&lt;TD&gt;31AUG2019&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Xavier&lt;/TD&gt;&lt;TD&gt;30SET2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Xavier&lt;/TD&gt;&lt;TD&gt;31OCT2019&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Xavier&lt;/TD&gt;&lt;TD&gt;31OCT2019&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Florine&lt;/TD&gt;&lt;TD&gt;31JUL2019&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Florine&lt;/TD&gt;&lt;TD&gt;31AUG2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Florine&lt;/TD&gt;&lt;TD&gt;30SET2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Florine&lt;/TD&gt;&lt;TD&gt;31OCT2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Florine&lt;/TD&gt;&lt;TD&gt;31OCT2019&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;Want&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;Clients&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Age&lt;/TD&gt;&lt;TD&gt;Sum Month&lt;/TD&gt;&lt;TD&gt;Sum Connexion&lt;/TD&gt;&lt;TD&gt;Actif&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;Thomas&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;No&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;Nelson&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Yes&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;Xavier&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;Yes&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;Florine&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 07 Nov 2019 13:42:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602374#M174401</guid>
      <dc:creator>WilliamB</dc:creator>
      <dc:date>2019-11-07T13:42:52Z</dc:date>
    </item>
    <item>
      <title>Re: Join data / IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602375#M174402</link>
      <description>&lt;P&gt;How is&amp;nbsp;&lt;SPAN&gt;Sum_Connexion=5 for Clients='Thomas'?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Nov 2019 13:31:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602375#M174402</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-11-07T13:31:15Z</dc:date>
    </item>
    <item>
      <title>Re: Join data / IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602381#M174408</link>
      <description>It's a mistake it's 1.</description>
      <pubDate>Thu, 07 Nov 2019 13:43:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602381#M174408</guid>
      <dc:creator>WilliamB</dc:creator>
      <dc:date>2019-11-07T13:43:19Z</dc:date>
    </item>
    <item>
      <title>Re: Join data / IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602391#M174415</link>
      <description>&lt;P&gt;I think you want to do something like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Table1;
input Clients $ Age;
datalines; 
Thomas 10 
Nelson 14 
Xavier 15 
Florine 15
;

data Table2;
input Clients $ Month :date9. Connexion;
format Month date9.;
datalines;
Thomas 30SEP2019 1
Thomas 31OCT2019 0
Nelson 31OCT2019 2
Xavier 31JUL2019 1
Xavier 31AUG2019 2
Xavier 30SEP2019 0
Xavier 31OCT2019 1
Xavier 31OCT2019 1
Florine 31JUL2019 1
Florine 31AUG2019 0
Florine 30SEP2019 0
Florine 31OCT2019 0
Florine 31OCT2019 0
;

proc sql;
    create table want as
    select a.Clients,
           a.Age,
           n(Month) as SumMonth,
           sum(Connexion) as SumConnexion,
           ifc(n(Month) &amp;gt;= sum(Connexion), 'Yes', 'No') as Actif
    from Table1 as a left join Table2 as b
    on a.Clients=b.Clients
    group by a.Clients, a.Age;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Clients   Age   SumMonth   SumConnexion   Actif
Florine   15    5           1             Yes
Nelson    14    1           2             No
Thomas    10    2           1             Yes
Xavier    15    5           5             Yes
&lt;/PRE&gt;</description>
      <pubDate>Thu, 07 Nov 2019 14:06:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602391#M174415</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-11-07T14:06:05Z</dc:date>
    </item>
    <item>
      <title>Re: Join data / IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602400#M174420</link>
      <description>&lt;P&gt;&lt;EM&gt;One to many&lt;/EM&gt; or &lt;EM&gt;Many to one&lt;/EM&gt; plus an ordered dataset(as sample suggests) is super fun for BY GROUP processing&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/112281"&gt;@WilliamB&lt;/a&gt;&amp;nbsp; Please review the Active variable result in your sample and the conditional logic. Nonetheless, that's minor and I am sure you will adjust quite easily&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data Table1;
input Clients $ Age;
datalines; 
Thomas 10 
Nelson 14 
Xavier 15 
Florine 15
;

data Table2;
input Clients $ Month :date9. Connexion;
format Month date9.;
datalines;
Thomas 30SEP2019 1
Thomas 31OCT2019 0
Nelson 31OCT2019 2
Xavier 31JUL2019 1
Xavier 31AUG2019 2
Xavier 30SEP2019 0
Xavier 31OCT2019 1
Xavier 31OCT2019 1
Florine 31JUL2019 1
Florine 31AUG2019 0
Florine 30SEP2019 0
Florine 31OCT2019 0
Florine 31OCT2019 0
;

data want;
if _n_=1 then do;
 if 0 then set table1;/*just to maintain order*/
  dcl hash H (dataset:'table1') ;
   h.definekey  ("clients") ;
   h.definedata ("age") ;
   h.definedone () ;
 end;
 do sum_month=1 by 1 until(last.clients);
  set table2;
  by clients notsorted;
  if h.find() ne 0 then continue;
  sum_connexion=sum(sum_connexion,Connexion);
 end;
 length Active $3;
 if sum_month&amp;gt;=sum_connexion then Active="Yes";
 else Active="No";
 keep clients age sum_: active;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 07 Nov 2019 14:32:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Join-data-IF/m-p/602400#M174420</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-11-07T14:32:11Z</dc:date>
    </item>
  </channel>
</rss>

