<?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 delete rows with the same absolute value in PROC SQL? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816625#M322356</link>
    <description>&lt;P&gt;SQL is not right tool for this scenario . Try data step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs;
input ContractNo $	NumFlag	Price01;
cards;
ABC0001	1 33100	 ...
ABC0001	1	33100	...
ABC0001	1	33100	...
ABC0001	-1	-33100	...
ABC0001	-1	-33100	...
ABC0002	1	4000	...
ABC0002	1	500	 ...
ABC0002	-1	-4000	...
ABC0003	1	6600	...
ABC0003	1	7000
;

data have1(index=(x=(ContractNo Price01))) 
     have2(index=(x=(ContractNo Price01)) drop=NumFlag);
 set have;
 if NumFlag=1 then output have1;
 if NumFlag=-1 then do;Price01=-Price01;output have2;end;
run;
data want;
 ina=0;inb=0;
 merge have1(in=ina) have2(in=inb);
 by ContractNo Price01;
 if not ina or not inb;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 06 Jun 2022 12:10:12 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2022-06-06T12:10:12Z</dc:date>
    <item>
      <title>How to delete rows with the same absolute value in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816621#M322353</link>
      <description>&lt;P&gt;Hi, everyone!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I really need your help, and I will really appreciate any answers.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a data table like this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(TABLE A)&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ContractNo&lt;/TD&gt;&lt;TD&gt;NumFlag&lt;/TD&gt;&lt;TD&gt;Price01&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0001&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;33100&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0001&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;33100&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0001&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;33100&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0001&lt;/TD&gt;&lt;TD&gt;-1&lt;/TD&gt;&lt;TD&gt;-33100&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0001&lt;/TD&gt;&lt;TD&gt;-1&lt;/TD&gt;&lt;TD&gt;-33100&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0002&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0002&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0002&lt;/TD&gt;&lt;TD&gt;-1&lt;/TD&gt;&lt;TD&gt;-4000&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0003&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6600&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0003&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7000&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to delete the rows with the same absolute value and different (negative-positive) signs in the same ContractNo.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The output data should seem like the below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(TABLE B)&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ContractNo&lt;/TD&gt;&lt;TD&gt;NumFlag&lt;/TD&gt;&lt;TD&gt;Price01&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0001&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;33100&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0002&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0003&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6600&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ABC0003&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7000&lt;/TD&gt;&lt;TD&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Most of the codes are written on PROC SQL, so hopefully, I can solve this problem with PROC SQL.&lt;/P&gt;&lt;P&gt;However, base SAS is also acceptable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jun 2022 11:38:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816621#M322353</guid>
      <dc:creator>seohyeonjeong</dc:creator>
      <dc:date>2022-06-06T11:38:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete rows with the same absolute value in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816624#M322355</link>
      <description>&lt;P&gt;data temp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; NumFlag = abs(NumFlag);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Price01 = abs(Price01);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sort data=taemp&amp;nbsp;out=want&lt;SPAN&gt;&amp;nbsp;NODUPKEY;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; by ContarctNumber NumFlag Price01;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jun 2022 12:04:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816624#M322355</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2022-06-06T12:04:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete rows with the same absolute value in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816625#M322356</link>
      <description>&lt;P&gt;SQL is not right tool for this scenario . Try data step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs;
input ContractNo $	NumFlag	Price01;
cards;
ABC0001	1 33100	 ...
ABC0001	1	33100	...
ABC0001	1	33100	...
ABC0001	-1	-33100	...
ABC0001	-1	-33100	...
ABC0002	1	4000	...
ABC0002	1	500	 ...
ABC0002	-1	-4000	...
ABC0003	1	6600	...
ABC0003	1	7000
;

data have1(index=(x=(ContractNo Price01))) 
     have2(index=(x=(ContractNo Price01)) drop=NumFlag);
 set have;
 if NumFlag=1 then output have1;
 if NumFlag=-1 then do;Price01=-Price01;output have2;end;
run;
data want;
 ina=0;inb=0;
 merge have1(in=ina) have2(in=inb);
 by ContractNo Price01;
 if not ina or not inb;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jun 2022 12:10:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816625#M322356</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-06-06T12:10:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete rows with the same absolute value in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816629#M322357</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your answer!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I believe using NODUPKEY is not a good way in this case.&lt;/P&gt;&lt;P&gt;If there are only two rows with the same value of Price01 &amp;amp; different signs in the same ContractNo,&lt;/P&gt;&lt;P&gt;I have to delete all of them.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jun 2022 12:46:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816629#M322357</guid>
      <dc:creator>seohyeonjeong</dc:creator>
      <dc:date>2022-06-06T12:46:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to delete rows with the same absolute value in PROC SQL?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816631#M322358</link>
      <description>&lt;P&gt;Thank you so much!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tested it and it seems working!&lt;/P&gt;&lt;P&gt;I have to test this on my real data tmr though.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You literally saved my day. Thanks alot.&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jun 2022 13:02:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-delete-rows-with-the-same-absolute-value-in-PROC-SQL/m-p/816631#M322358</guid>
      <dc:creator>seohyeonjeong</dc:creator>
      <dc:date>2022-06-06T13:02:48Z</dc:date>
    </item>
  </channel>
</rss>

