<?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: sum up values across observation by multiple conditions in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535561#M73927</link>
    <description>&lt;P&gt;Similar with PG's code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID $ AorB $   Year    Supply;
cards;
15169   A   2009    30
15169   A   2009    60
15169   A   2009    30
15169   A   2009    90
15169   A   2010    30
15169   A   2010    30
15169   B   2010    30
15169   A   2010    30
30629   A   2009    90
30629   A   2009    90
30629   A   2009    30
30629   B   2009    30
30629   B   2009    30
30629   A   2010    90
30629   A   2011    90
;;;;
run;
proc sql;
select 
    *,
    coalesce((select sum(Supply) from have where id=a.id and year=a.year and AorB = "A"),0) as Year_Supply_A,
    coalesce((select sum(Supply) from have where id=a.id and year=a.year and AorB = "B"),0) as Year_Supply_B
from have as a;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 14 Feb 2019 12:28:32 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2019-02-14T12:28:32Z</dc:date>
    <item>
      <title>sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535483#M73919</link>
      <description>&lt;P&gt;Good afternoon All!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am attempting to sum a variable using multiple conditions. See below for the data I have and want.&amp;nbsp; I want to create two new variables that sum "supply" by "ID" based on "year" and "AorB" group.&amp;nbsp; I am aware of how to complete this using proc sql when looking at only two other variables (ID and Year), but not sure how to complete this data step when using multiple conditions. Your help and expertise is always appreciated!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;AorB&lt;/TD&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Supply&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Want:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;AorB&lt;/TD&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Supply&lt;/TD&gt;&lt;TD&gt;Year_Supply_A&lt;/TD&gt;&lt;TD&gt;Year_Supply_B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15169&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;210&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30629&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Feb 2019 03:11:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535483#M73919</guid>
      <dc:creator>ssulli11</dc:creator>
      <dc:date>2019-02-14T03:11:51Z</dc:date>
    </item>
    <item>
      <title>Re: sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535488#M73921</link>
      <description>&lt;P&gt;There's probably a quicker way than this, but this is dynamic until the last step where I'm replacing the zeros. There are ways to do that if necessary.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Summarize data&lt;/P&gt;
&lt;P&gt;2. Transpose into different columns&lt;/P&gt;
&lt;P&gt;3. Merge into main data&lt;/P&gt;
&lt;P&gt;4. Replace missing with 0&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID $ AorB $   Year    Supply;
cards;
15169   A   2009    30
15169   A   2009    60
15169   A   2009    30
15169   A   2009    90
15169   A   2010    30
15169   A   2010    30
15169   B   2010    30
15169   A   2010    30
30629   A   2009    90
30629   A   2009    90
30629   A   2009    30
30629   B   2009    30
30629   B   2009    30
30629   A   2010    90
30629   A   2011    90
;;;;
run;

proc means data=have noprint nway;
class ID Year AorB;
var Supply;
output out=summary sum=Total;
run;

proc transpose data=summary out=summary_wide prefix=Supply;
by ID Year;
ID AorB;
var Total;
run;

proc sql;
create table want as 
select a.*, coalesce(SupplyA, 0) as SupplyA, coalesce(SupplyB, 0) as SupplyB
from have as a
left join summary_wide as b
on a.ID=b.ID and a.Year=b.Year;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/233846"&gt;@ssulli11&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Good afternoon All!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am attempting to sum a variable using multiple conditions. See below for the data I have and want.&amp;nbsp; I want to create two new variables that sum "supply" by "ID" based on "year" and "AorB" group.&amp;nbsp; I am aware of how to complete this using proc sql when looking at only two other variables (ID and Year), but not sure how to complete this data step when using multiple conditions. Your help and expertise is always appreciated!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Have:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;AorB&lt;/TD&gt;
&lt;TD&gt;Year&lt;/TD&gt;
&lt;TD&gt;Supply&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Want:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;AorB&lt;/TD&gt;
&lt;TD&gt;Year&lt;/TD&gt;
&lt;TD&gt;Supply&lt;/TD&gt;
&lt;TD&gt;Year_Supply_A&lt;/TD&gt;
&lt;TD&gt;Year_Supply_B&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;15169&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2009&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;210&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2010&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;30629&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2011&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Feb 2019 03:53:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535488#M73921</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-02-14T03:53:14Z</dc:date>
    </item>
    <item>
      <title>Re: sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535489#M73922</link>
      <description>&lt;P&gt;Use proc sql, and take advantage of auto remerge:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select 
    *,
    sum(case when AorB = "A" then Supply else 0 end) as Year_Supply_A,
    sum(case when AorB = "B" then Supply else 0 end) as Year_Supply_B
from have
group by ID, Year;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 03:54:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535489#M73922</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-02-14T03:54:02Z</dc:date>
    </item>
    <item>
      <title>Re: sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535490#M73923</link>
      <description>&lt;P&gt;If your data are&amp;nbsp; sorted by ID/YEAR, then you can make a single data step work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input ID	AorB :$1.	Year	Supply;
datalines;
15169	A	2009	30
15169	A	2009	60
15169	A	2009	30
15169	A	2009	90
15169	A	2010	30
15169	A	2010	30
15169	B	2010	30
15169	A	2010	30
30629	A	2009	90
30629	A	2009	90
30629	A	2009	30
30629	B	2009	30
30629	B	2009	30
30629	A	2010	90
30629	A	2011	90
run;

data want;
  set have;
  by id year;
  if first.year then call missing(supply_a,supply_b);
  if aorb='A' then supply_a+supply; else
  if aorb='B' then supply_b+supply;
  if last.year;
  supply_a=sum(0,supply_a);
  supply_b=sum(0,supply_b);
  do until (last.year);
    set have;
    by id year;
    output;
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Notice that supply_a and supplly_b are aggregated until encountering the last obs for a given id/year.&amp;nbsp; The those obs are then re-read and output with the correct supply_a and supply_b values.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Feb 2019 04:01:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535490#M73923</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2019-02-14T04:01:03Z</dc:date>
    </item>
    <item>
      <title>Re: sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535491#M73924</link>
      <description>&lt;P&gt;I prefer the logically simpler (IMHO):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
supply_a = 0;
supply_b = 0;
do until (last.year);
  set have; by id year;
  if aorb='A' then supply_a = supply_a + supply;
  if aorb='B' then supply_b = supply_b + supply;
  end;  
do until (last.year);
  set have; by id year;
  output;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 04:11:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535491#M73924</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-02-14T04:11:12Z</dc:date>
    </item>
    <item>
      <title>Re: sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535561#M73927</link>
      <description>&lt;P&gt;Similar with PG's code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID $ AorB $   Year    Supply;
cards;
15169   A   2009    30
15169   A   2009    60
15169   A   2009    30
15169   A   2009    90
15169   A   2010    30
15169   A   2010    30
15169   B   2010    30
15169   A   2010    30
30629   A   2009    90
30629   A   2009    90
30629   A   2009    30
30629   B   2009    30
30629   B   2009    30
30629   A   2010    90
30629   A   2011    90
;;;;
run;
proc sql;
select 
    *,
    coalesce((select sum(Supply) from have where id=a.id and year=a.year and AorB = "A"),0) as Year_Supply_A,
    coalesce((select sum(Supply) from have where id=a.id and year=a.year and AorB = "B"),0) as Year_Supply_B
from have as a;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 12:28:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/535561#M73927</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-02-14T12:28:32Z</dc:date>
    </item>
    <item>
      <title>Re: sum up values across observation by multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/536324#M73961</link>
      <description>&lt;P&gt;Thank you to everyone who responded and helped!!&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 Feb 2019 01:37:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/sum-up-values-across-observation-by-multiple-conditions/m-p/536324#M73961</guid>
      <dc:creator>ssulli11</dc:creator>
      <dc:date>2019-02-18T01:37:25Z</dc:date>
    </item>
  </channel>
</rss>

