<?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 Proc SQL Conditional sum Across Row and Column in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13943#M2114</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sachin, is this what you want:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;infile datalines truncover;&lt;BR /&gt;input Name $ Salary other_earnings Type_of_Complaints $;&lt;BR /&gt;datalines;&lt;BR /&gt;Sachin 10 2 anti&lt;BR /&gt;Suraj 15 3 Light&lt;BR /&gt;Neha 20 . anti&lt;BR /&gt;Mishu 4 . Light&lt;BR /&gt;Sapan 17 5 anti&lt;BR /&gt;Sachin 5 6 Light&lt;BR /&gt;Suraj 2 3 anti&lt;BR /&gt;Suraj 15 . Light&lt;BR /&gt;Neha 20 5 &lt;BR /&gt;Mishu 5 . Light&lt;BR /&gt;Sapan 17 2 anti&lt;BR /&gt;Sachin 5 1 Anti&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table want as&lt;BR /&gt;select name, sum(salary) as sum_salary, &lt;BR /&gt;sum(upcase(type_of_complaints)="LIGHT") as agg_light,&lt;BR /&gt;sum(upcase(type_of_complaints)="ANTI") as agg_anti,&lt;BR /&gt;calculated agg_light + calculated agg_anti as Total_Complaints&lt;BR /&gt;from have&lt;BR /&gt;group by name;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 25 Feb 2012 16:00:21 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2012-02-25T16:00:21Z</dc:date>
    <item>
      <title>Proc SQL Conditional sum Across Row and Column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13941#M2112</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can I do this with Proc SQL. I have four variable (Name&amp;nbsp; - to -&amp;nbsp; Type_of_Complaint) and want to populate Agg_anti, Agg_Light variables, Total_Complaints and Sum_Salary &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data should be aggregated up to 'Name' level.&amp;nbsp; &lt;/P&gt;&lt;P&gt;Agg_Anti ~ should contain Number of 'Anti' complaints for each person (Name) from 'Type_of_Complaint' column &lt;/P&gt;&lt;P&gt;Agg_Light ~ should contain Number of 'Light' complaints for each person (Name) from 'Type_of_Complaint' column&lt;/P&gt;&lt;P&gt;Total_Complaints ~ Agg_Anti + Agg_Light (summing Across Column)&lt;/P&gt;&lt;P&gt;Sum_Salary ~ should contain Sum of 'Salary' (again at Name level)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="384"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="20" width="64"&gt;Name&lt;/TD&gt;&lt;TD width="64"&gt;Salary&lt;/TD&gt;&lt;TD width="64"&gt;other earnings&lt;/TD&gt;&lt;TD width="64"&gt;Type_of Complaints&lt;/TD&gt;&lt;TD width="64"&gt;Agg Anti &lt;/TD&gt;&lt;TD width="64"&gt;Agg Light&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Sachin&lt;/TD&gt;&lt;TD align="right"&gt;10&lt;/TD&gt;&lt;TD align="right"&gt;2&lt;/TD&gt;&lt;TD&gt;anti&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Suraj&lt;/TD&gt;&lt;TD align="right"&gt;15&lt;/TD&gt;&lt;TD align="right"&gt;3&lt;/TD&gt;&lt;TD&gt;Light&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Neha&lt;/TD&gt;&lt;TD align="right"&gt;20&lt;/TD&gt;&lt;TD&gt;anti&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Mishu&lt;/TD&gt;&lt;TD align="right"&gt;4&lt;/TD&gt;&lt;TD&gt;Light&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Sapan&lt;/TD&gt;&lt;TD align="right"&gt;17&lt;/TD&gt;&lt;TD align="right"&gt;5&lt;/TD&gt;&lt;TD&gt;anti&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Sachin&lt;/TD&gt;&lt;TD align="right"&gt;5&lt;/TD&gt;&lt;TD align="right"&gt;6&lt;/TD&gt;&lt;TD&gt;Light&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Suraj&lt;/TD&gt;&lt;TD align="right"&gt;2&lt;/TD&gt;&lt;TD align="right"&gt;3&lt;/TD&gt;&lt;TD&gt;anti&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Suraj&lt;/TD&gt;&lt;TD align="right"&gt;15&lt;/TD&gt;&lt;TD&gt;Light&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Neha&lt;/TD&gt;&lt;TD align="right"&gt;20&lt;/TD&gt;&lt;TD align="right"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Mishu&lt;/TD&gt;&lt;TD align="right"&gt;5&lt;/TD&gt;&lt;TD&gt;Light&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Sapan&lt;/TD&gt;&lt;TD align="right"&gt;17&lt;/TD&gt;&lt;TD align="right"&gt;2&lt;/TD&gt;&lt;TD&gt;anti&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;Sachin&lt;/TD&gt;&lt;TD align="right"&gt;5&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD&gt;Anti&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have done this in two steps a) SAS data step and b) Proc SQL howvere want to do this in one step. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;sachin &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Feb 2012 14:32:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13941#M2112</guid>
      <dc:creator>sachin01663</dc:creator>
      <dc:date>2012-02-25T14:32:34Z</dc:date>
    </item>
    <item>
      <title>Proc SQL Conditional sum Across Row and Column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13942#M2113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your data table appears to have pasted incorrectly.&amp;nbsp; Can you provide your data in the form of a datastep?&amp;nbsp; Plus, seeing how you got what you want in a datastep would also clarify what you are trying to accomplish.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Feb 2012 14:36:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13942#M2113</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-02-25T14:36:09Z</dc:date>
    </item>
    <item>
      <title>Proc SQL Conditional sum Across Row and Column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13943#M2114</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sachin, is this what you want:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;infile datalines truncover;&lt;BR /&gt;input Name $ Salary other_earnings Type_of_Complaints $;&lt;BR /&gt;datalines;&lt;BR /&gt;Sachin 10 2 anti&lt;BR /&gt;Suraj 15 3 Light&lt;BR /&gt;Neha 20 . anti&lt;BR /&gt;Mishu 4 . Light&lt;BR /&gt;Sapan 17 5 anti&lt;BR /&gt;Sachin 5 6 Light&lt;BR /&gt;Suraj 2 3 anti&lt;BR /&gt;Suraj 15 . Light&lt;BR /&gt;Neha 20 5 &lt;BR /&gt;Mishu 5 . Light&lt;BR /&gt;Sapan 17 2 anti&lt;BR /&gt;Sachin 5 1 Anti&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;create table want as&lt;BR /&gt;select name, sum(salary) as sum_salary, &lt;BR /&gt;sum(upcase(type_of_complaints)="LIGHT") as agg_light,&lt;BR /&gt;sum(upcase(type_of_complaints)="ANTI") as agg_anti,&lt;BR /&gt;calculated agg_light + calculated agg_anti as Total_Complaints&lt;BR /&gt;from have&lt;BR /&gt;group by name;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Feb 2012 16:00:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13943#M2114</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-02-25T16:00:21Z</dc:date>
    </item>
    <item>
      <title>Proc SQL Conditional sum Across Row and Column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13944#M2115</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think PGStats already provided what you want, but I would a a quit; statement right after the group by name; statement.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Feb 2012 19:43:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-Conditional-sum-Across-Row-and-Column/m-p/13944#M2115</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-02-25T19:43:12Z</dc:date>
    </item>
  </channel>
</rss>

