<?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: Proc SQL with IF in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178954#M34201</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Probable reason might be&lt;/P&gt;&lt;P&gt;1. Macro variable is created after compilation only (After Quit statement)&lt;/P&gt;&lt;P&gt;2. If else condition doesn't work in SQL/Open code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA CONTROLE_CARGA_JOBS;&lt;/P&gt;&lt;P&gt;input COD_PROCESSO_JOB;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;5&lt;/P&gt;&lt;P&gt;4&lt;/P&gt;&lt;P&gt;4&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test;&lt;/P&gt;&lt;P&gt;PROC SQL PRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SELECT COUNT(1) INTO :CONT2 FROM CONTROLE_CARGA_JOBS&lt;/P&gt;&lt;P&gt;WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE MYTABLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONTADOR NUM);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%IF &amp;amp;CONT2=0 %THEN %do;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;INSERT INTO MYTABLE(CONTADOR) SELECT COUNT(1) FROM CONTROLE_CARGA_JOBS;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;%ELSE %do;&lt;/P&gt;&lt;P&gt;proc sql;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;INSERT INTO MYTABLE(CONTADOR) SELECT COUNT(1) FROM CONTROLE_CARGA_JOBS WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Jan 2015 18:23:00 GMT</pubDate>
    <dc:creator>saidi</dc:creator>
    <dc:date>2015-01-12T18:23:00Z</dc:date>
    <item>
      <title>Proc SQL with IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178953#M34200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;Friends&lt;/SPAN&gt;, I need &lt;SPAN class="hps"&gt;to create&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the situation below&lt;/SPAN&gt;, do you have &lt;SPAN class="hps"&gt;any solutions?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;PROC SQL PRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SELECT COUNT(1) INTO :CONT FROM SIAR_CGA.CONTROLE_CARGA_JOBS WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE SIAR_CGA.MYTABLE &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONTADOR NUM);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF &amp;amp;CONT=0 THEN&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO SIAR_CGA.MYTABLE(CONTADOR) SELECT COUNT(1) FROM SIAR_CGA.CONTROLE_CARGA_JOBS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO SIAR_CGA.MYTABLE(CONTADOR) SELECT COUNT(1) FROM SIAR_CGA.CONTROLE_CARGA_JOBS WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 17:52:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178953#M34200</guid>
      <dc:creator>wrosario</dc:creator>
      <dc:date>2015-01-12T17:52:13Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL with IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178954#M34201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Probable reason might be&lt;/P&gt;&lt;P&gt;1. Macro variable is created after compilation only (After Quit statement)&lt;/P&gt;&lt;P&gt;2. If else condition doesn't work in SQL/Open code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA CONTROLE_CARGA_JOBS;&lt;/P&gt;&lt;P&gt;input COD_PROCESSO_JOB;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;5&lt;/P&gt;&lt;P&gt;4&lt;/P&gt;&lt;P&gt;4&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test;&lt;/P&gt;&lt;P&gt;PROC SQL PRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SELECT COUNT(1) INTO :CONT2 FROM CONTROLE_CARGA_JOBS&lt;/P&gt;&lt;P&gt;WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE MYTABLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONTADOR NUM);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%IF &amp;amp;CONT2=0 %THEN %do;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;INSERT INTO MYTABLE(CONTADOR) SELECT COUNT(1) FROM CONTROLE_CARGA_JOBS;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;%ELSE %do;&lt;/P&gt;&lt;P&gt;proc sql;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;INSERT INTO MYTABLE(CONTADOR) SELECT COUNT(1) FROM CONTROLE_CARGA_JOBS WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 18:23:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178954#M34201</guid>
      <dc:creator>saidi</dc:creator>
      <dc:date>2015-01-12T18:23:00Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL with IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178955#M34202</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;On the one hand, this solution should work ... at least if the original posted SQL code is correct.&amp;nbsp; On the other hand, a lot of it can be removed.&amp;nbsp; Compare with:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL PRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SELECT COUNT(1) INTO :CONT2 FROM CONTROLE_CARGA_JOBS&lt;/P&gt;&lt;P&gt;WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATE TABLE MYTABLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONTADOR NUM);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INSERT INTO MYTABLE(CONTADOR) SELECT COUNT(1) FROM CONTROLE_CARGA_JOBS&lt;/P&gt;&lt;P&gt;%if &amp;amp;CONT2 ne 0 %then&amp;nbsp; WHERE COD_PROCESSO_JOB = 5;&lt;/P&gt;&lt;P&gt; ;&lt;/P&gt;&lt;P&gt;Quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that SQL statements execute immediately.&amp;nbsp; So the SELECT statement creates &amp;amp;CONT2 in time for the next statement to use it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also note, the lone semicolon on a line by itself ends the INSERT statement.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 18:38:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178955#M34202</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-01-12T18:38:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL with IF</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178956#M34203</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 19:09:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-SQL-with-IF/m-p/178956#M34203</guid>
      <dc:creator>saidi</dc:creator>
      <dc:date>2015-01-12T19:09:53Z</dc:date>
    </item>
  </channel>
</rss>

