<?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: Converting SQL to SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880740#M347994</link>
    <description>&lt;P&gt;Examples of input data set and the desired output data set and description of the logic is likely going to get a better answer quicker. For one thing someone has to be familiar with that flavor of SQL just to follow the code shown (I know I can't).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instructions here: &lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt; will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the &amp;lt;/&amp;gt; icon or attached as text to show exactly what you have and that we can test code against.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The data set can have dummy values for anything sensitive (names for example)but should otherwise behave like your actual data.&lt;/P&gt;
&lt;P&gt;You might consider reducing the variables to just the ones that are manipulated as if you are selecting a bunch variables that just pass through as group then one variable to represent the bunch should suffice.&lt;/P&gt;</description>
    <pubDate>Wed, 14 Jun 2023 16:33:53 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2023-06-14T16:33:53Z</dc:date>
    <item>
      <title>Converting SQL to SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880735#M347990</link>
      <description>&lt;P&gt;I have this SQL code I need to convert t SAS (below). I did not write it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;DROP TABLE #data_final&lt;/DIV&gt;&lt;DIV&gt;--GO&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;DECLARE @Flag INT&lt;/DIV&gt;&lt;DIV&gt;SET @Flag = 1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;DECLARE &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; int&lt;/DIV&gt;&lt;DIV&gt;SET &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; = 1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;CREATE TABLE #data_final&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;(&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;line int,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rpt_order int,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MBR_MAID varchar(15),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Member_id varchar(15),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Member_Name varchar(255),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Provider_Name varchar(255),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Network_Status varchar(255),&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CHECK_NUMBER varchar(255),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CHECK_DATE date,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CLAIM_ID varchar(12),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;REVENUE_CODE float,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Service_Description varchar(255),&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;DIAGNOSIS_CODES varchar(255),&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_FROM_DT date,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_THROUGH_DT date,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SUM_OF_DAYS float,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SUM_OF_CLAIM_AMT float,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SUM_OF_PAID_AMT float,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;PAYOR varchar(255),&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Rate float&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;);&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;WHILE (@Flag &amp;lt;= (SELECT COUNT(*) FROM #data_order))&lt;/DIV&gt;&lt;DIV&gt;BEGIN&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;IF ((SELECT MBR_MAID FROM #data_order WHERE ROW = (@Flag)) != (SELECT MBR_MAID FROM #data_order WHERE ROW = (@Flag+1)) --last row of patientID&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;OR (@Flag = (SELECT COUNT(*) FROM #data_order))) --or LAST ROW of table&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BEGIN&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;INSERT INTO #data_final (line, rpt_order, MBR_MAID, Member_id, Member_name, Provider_Name, Network_Status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, Service_Description, DIAGNOSIS_CODES,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS , SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT,&amp;nbsp; PAYOR,&amp;nbsp; Rate)&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SELECT &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt;, Member_Order, MBR_MAID, MBR_MAID, Member_name, Provider_Name, 'In Network' as Network_status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, 'MH-InPatient-Psychiatric Srvcs R&amp;amp;B' as Service_Description, DIAGNOSIS_CODES,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, Rate FROM #data_order where ROW = @Flag;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SET &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; = &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; + 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;--INSERT TOTAL&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;INSERT INTO #data_final(line, rpt_order, MBR_MAID, Member_id, Member_name, Provider_Name, Network_Status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, Service_Description, DIAGNOSIS_CODES,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS , SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, rate)&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SELECT &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt;, Member_Order, MBR_MAID, '0' as Member_id, '' as Member_name, '' as Provider_Name, '' as Network_Status, '' as CHECK_NUMBER, '' as CHECK_DATE, '' as CLAIM_ID, '' as REVENUE_CODE, '' as Service_Description,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'Total' as DIAGNOSIS_CODES, '' as SERVICE_FROM_DT, '' as SERVICE_THROUGH_DT, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, '' as PAYOR, '' as Rate&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;FROM #data_totals&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;WHERE MBR_MAID = (SELECT MBR_MAID FROM #data_order where ROW = (@Flag))&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GROUP BY Member_Order, MBR_MAID, Principle_Diag, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SET &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; = &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; + 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;END&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ELSE&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BEGIN&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;INSERT INTO #data_final (line, rpt_order, MBR_MAID, Member_id, Member_name, Provider_Name, Network_Status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, Service_Description, DIAGNOSIS_CODES,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS , SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, Rate)&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SELECT &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt;, Member_Order, MBR_MAID, MBR_MAID, Member_name, Provider_Name, 'In Network' as Network_status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE,'MH-InPatient-Psychiatric Srvcs R&amp;amp;B' as&amp;nbsp; Service_Description, DIAGNOSIS_CODES,&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, Rate FROM #data_order where ROW = @Flag;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SET &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; = &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/142235"&gt;@Line&lt;/a&gt; + 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;END&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SET @Flag = @Flag + 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;END&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The data needs to be subtotaled by mbr_id and member_order and needs to be exported as a SAS dataset, not a result (like proc report). Any help is appreciated!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Jun 2023 16:14:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880735#M347990</guid>
      <dc:creator>SASuser8564</dc:creator>
      <dc:date>2023-06-14T16:14:39Z</dc:date>
    </item>
    <item>
      <title>Re: Converting SQL to SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880738#M347992</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/443967"&gt;@SASuser8564&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have this SQL code I need to convert t SAS (below). I did not write it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;The data needs to be subtotaled by mbr_id and member_order and needs to be exported as a SAS dataset, not a result (like proc report). Any help is appreciated!&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Is that what the code does? Cursor logic is a pain to decrypt.&amp;nbsp;&lt;BR /&gt;It looks like it's keeping information from the last or first row as well?&lt;/P&gt;
&lt;P&gt;If you can convert to requirements and then requirements to SAS that's more efficient.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Jun 2023 16:24:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880738#M347992</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2023-06-14T16:24:01Z</dc:date>
    </item>
    <item>
      <title>Re: Converting SQL to SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880740#M347994</link>
      <description>&lt;P&gt;Examples of input data set and the desired output data set and description of the logic is likely going to get a better answer quicker. For one thing someone has to be familiar with that flavor of SQL just to follow the code shown (I know I can't).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instructions here: &lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt; will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the &amp;lt;/&amp;gt; icon or attached as text to show exactly what you have and that we can test code against.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The data set can have dummy values for anything sensitive (names for example)but should otherwise behave like your actual data.&lt;/P&gt;
&lt;P&gt;You might consider reducing the variables to just the ones that are manipulated as if you are selecting a bunch variables that just pass through as group then one variable to represent the bunch should suffice.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Jun 2023 16:33:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880740#M347994</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-06-14T16:33:53Z</dc:date>
    </item>
    <item>
      <title>Re: Converting SQL to SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880799#M348014</link>
      <description>&lt;P&gt;You can run this code as it is from SAS using SQL Passthru. No need to convert it at all.&amp;nbsp; Just add a SELECT * on the end. Try this (change your LIBNAME statement to suit):&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;libname MyDB  odbc noprompt = "server=MySQLSrvr;DRIVER=SQL Server Native Client 11.0;Trusted_Connection=yes;"; 

proc sql;
  connect using MyDB;

  create table data_final as
  select *
  from connection to MyDB (

DROP TABLE #data_final
--GO 
DECLARE @Flag INT
SET @Flag = 1
 
DECLARE @Line int
SET @Line = 1
 
CREATE TABLE #data_final
 (
line int,
rpt_order int,
MBR_MAID varchar(15), 
Member_id varchar(15), 
Member_Name varchar(255), 
Provider_Name varchar(255), 
Network_Status varchar(255),
CHECK_NUMBER varchar(255), 
CHECK_DATE date, 
CLAIM_ID varchar(12), 
REVENUE_CODE float, 
Service_Description varchar(255),
DIAGNOSIS_CODES varchar(255), 
SERVICE_FROM_DT date, 
SERVICE_THROUGH_DT date, 
SUM_OF_DAYS float,
SUM_OF_CLAIM_AMT float, 
SUM_OF_PAID_AMT float,
PAYOR varchar(255),  
Rate float
 ); 
 
WHILE (@Flag &amp;lt;= (SELECT COUNT(*) FROM #data_order))
BEGIN
IF ((SELECT MBR_MAID FROM #data_order WHERE ROW = (@Flag)) != (SELECT MBR_MAID FROM #data_order WHERE ROW = (@Flag+1)) --last row of patientID
OR (@Flag = (SELECT COUNT(*) FROM #data_order))) --or LAST ROW of table
BEGIN
INSERT INTO #data_final (line, rpt_order, MBR_MAID, Member_id, Member_name, Provider_Name, Network_Status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, Service_Description, DIAGNOSIS_CODES, 
SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS , SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT,  PAYOR,  Rate) 
SELECT @Line, Member_Order, MBR_MAID, MBR_MAID, Member_name, Provider_Name, 'In Network' as Network_status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, 'MH-InPatient-Psychiatric Srvcs R&amp;amp;B' as Service_Description, DIAGNOSIS_CODES, 
SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, Rate FROM #data_order where ROW = @Flag;
 
SET @Line = @Line + 1
 
--INSERT TOTAL
INSERT INTO #data_final(line, rpt_order, MBR_MAID, Member_id, Member_name, Provider_Name, Network_Status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, Service_Description, DIAGNOSIS_CODES, 
SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS , SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, rate) 
SELECT @Line, Member_Order, MBR_MAID, '0' as Member_id, '' as Member_name, '' as Provider_Name, '' as Network_Status, '' as CHECK_NUMBER, '' as CHECK_DATE, '' as CLAIM_ID, '' as REVENUE_CODE, '' as Service_Description, 
'Total' as DIAGNOSIS_CODES, '' as SERVICE_FROM_DT, '' as SERVICE_THROUGH_DT, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, '' as PAYOR, '' as Rate
FROM #data_totals 
WHERE MBR_MAID = (SELECT MBR_MAID FROM #data_order where ROW = (@Flag)) 
GROUP BY Member_Order, MBR_MAID, Principle_Diag, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT;
SET @Line = @Line + 1
END
ELSE
BEGIN
INSERT INTO #data_final (line, rpt_order, MBR_MAID, Member_id, Member_name, Provider_Name, Network_Status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE, Service_Description, DIAGNOSIS_CODES, 
SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS , SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, Rate) 
SELECT @Line, Member_Order, MBR_MAID, MBR_MAID, Member_name, Provider_Name, 'In Network' as Network_status, CHECK_NUMBER, CHECK_DATE, CLAIM_ID, REVENUE_CODE,'MH-InPatient-Psychiatric Srvcs R&amp;amp;B' as  Service_Description, DIAGNOSIS_CODES, 
SERVICE_FROM_DT, SERVICE_THROUGH_DT, SUM_OF_DAYS, SUM_OF_CLAIM_AMT, SUM_OF_PAID_AMT, PAYOR, Rate FROM #data_order where ROW = @Flag;
SET @Line = @Line + 1
END
 
SET @Flag = @Flag + 1
END

select *
from #data_final
);

disconnect from MyDB;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 14 Jun 2023 20:11:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880799#M348014</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2023-06-14T20:11:46Z</dc:date>
    </item>
    <item>
      <title>Re: Converting SQL to SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880864#M348049</link>
      <description>&lt;P&gt;I think what your SQL code does is something like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data data_final;
  length 
    line 8 
	rpt_order 8 
	MBR_MAID $15
	Member_id $15 
    Member_Name $255 
	Provider_Name $255 
    Network_Status $255
    CHECK_NUMBER $25 
    CHECK_DATE 8
    CLAIM_ID $12 
    REVENUE_CODE 8 
    Service_Description $255
    DIAGNOSIS_CODES $255 
    SERVICE_FROM_DT 8
    SERVICE_THROUGH_DT 8 
    SUM_OF_DAYS 8
    SUM_OF_CLAIM_AMT 8 
    SUM_OF_PAID_AMT 8
    PAYOR $255  
    Rate 8
	;
  format
    line 8.0 
	rpt_order 8.0 
    CHECK_DATE yymmdd10.
    SERVICE_FROM_DT yymmdd10.
    SERVICE_THROUGH_DT yymmdd10. 
	;
  keep line--rate;
  set data_order(in=base) data_totals(in=sum);
  by MBR_MAID;
  line=_N_;
  if base then do;
    rpt_order=Member_Order;
	Member_id=MBR_MAID;
	Network_Status='In Network';
	Service_Description='MH-InPatient-Psychiatric Srvcs R&amp;amp;B';
	end;
  else do;
    rpt_order=Member_Order;
	Member_id=0;
	call missing(Member_Name,Provider_Name,Network_Status,CHECK_NUMBER,CHECK_DATE,CLAIM_ID,REVENUE_CODE,Service_Description,SERVICE_FROM_DT,SERVICE_THROUGH_DT,PAYOR,Rate);
    DIAGNOSIS_CODES='Total';
	end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The first lines (down to and including the KEEP statement) is analogue to the CREATE TABLE statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code assumes that both DATA_ORDER and DATA_TOTALS are sorted by&amp;nbsp;MBR_MAID.&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2023 07:13:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Converting-SQL-to-SAS/m-p/880864#M348049</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2023-06-15T07:13:47Z</dc:date>
    </item>
  </channel>
</rss>

