<?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: Create Violate Tera table from SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910847#M359175</link>
    <description>&lt;P&gt;Your code is working 100% , however I want to learn to do it in the following way:&lt;/P&gt;
&lt;P&gt;Create violate table&amp;nbsp;t_dates&amp;nbsp; and then create&amp;nbsp;violate table&amp;nbsp;VBM376_INTERNAL_ORGANIZATION.&lt;/P&gt;
&lt;P&gt;In real word there is a query that run on tera and I want to run it on SAS.&lt;/P&gt;
&lt;P&gt;This query is long and&amp;nbsp; during this process there are 3 violate tables that are created.&lt;/P&gt;
&lt;P&gt;My question- How to run this long query in SAS?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;


CREATE VOLATILE TABLE  VT5727_DATES_M  AS (
SELECT Max(PROCESS_DATE )   AS END_DATE  
,(CAST('01/10/2023' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE 
,END_DATE/ 100 + 190000 AS MONTH_REPORTED        
FROM   V797_PROCESS_DATE  
)WITH DATA ON COMMIT PRESERVE ROWS; 
 


CREATE VOLATILE TABLE VT5727_POP_LOANS_M AS (
SELECT DISTINCT
DATE AS Run_Date
,VBM374.first_Branch_Cust_IP as  Numerator_DWH 
,VBM374.Branch_Cust_IP
,VBM374.Current_Branch_Cust_IP
,VBM374.Branch_Cust_Nbr
,VBM374.Branch_Nbr
,AS52_SHIUCH_CHAT AS division_nbr    

,DHIA_TASH.AS52_MIS_CHODASHIM 
,DHIA_TASH.AS52_TEDIRUT_KEREN  
,DHIA_TASH.AS52_SUG_DHIA 

,CASE WHEN AS52_SUG_DHIA IN (0,1) THEN  Cast ( DHIA_TASH.AS52_SCHUM_DHIA AS DECIMAL(18,0)) *(V00X613.Exchange_Rate / V00X613.Exchange_Rate_Calc_Currency_Am) ELSE  ZeroIfNull(LOAN_BAL_PREV.Next_Payment_Amt_Nis )   END AS  SCHUM_DHIA 
,DHIA_TASH.AS52_TAR_DHIA 
,CASE WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V1' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM 
	WHEN DHIA_TASH.AS52_TEDIRUT_KEREN IN ('T1037V0','T1037V12') THEN SCHUM_DHIA 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V3' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM/3 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V6' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM/6 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V2' AND DHIA_TASH.AS52_MIS_CHODASHIM BETWEEN 3 AND 4 THEN SCHUM_DHIA * 2 
	  ELSE SCHUM_DHIA * DHIA_TASH.AS52_MIS_CHODASHIM/2  
	  END AS SCHUM_TASHLOMIM_NIDHO 
  
,DHIA_TASH.Curr_Agr_Id AS Agreement_Account_Id 
,VBM442.agreement_open_date 
,VBM442_CURR.Agreement_Due_Close_Date 
,VBM448_ACT_LOAN_AGR_RATE.Interest_Pct
,CASE WHEN DHIA_TASH.AS52_SUG_DHIA = '2' THEN  1 ELSE 0 end AS ind_mitveh_israel    
,VBM442.Loan_Model_Code 
,VBM442.Loan_Serial_Nbr 
,VBM442.loan_type_code 
,CASE WHEN Substr(V02X17_PRODUCT_CREDITS.Type_Of_Sector_Code,6,3)= '45' THEN 1 ELSE 0 END AS ind_house_loan 
,DHIA_TASH.AS52_TAR_KEREN_AFT
,DHIA_TASH.AS52_TAR_RIBIT_AFT

,Greatest(DHIA_TASH.AS52_TAR_KEREN_AFT,VBM452_ACT_LOAN_AGR_TERM.Fund_Next_Pmt_Date) AS END_DHIA_DATE
,CASE WHEN (DHIA_TASH.AS52_TAR_KEREN_AFT/ 100 + 190000) = (DHIA_TASH.AS52_TAR_RIBIT_AFT/ 100 + 190000)  THEN 1 ELSE 0 END AS FULL_DHIA
,DHIA_TASH.AS52_ITRA_MSHRCHT_ACHARON 
,CASE WHEN END_DHIA_DATE &amp;gt; (SEL END_DATE FROM VT5727_DATES_M) THEN 1 ELSE 0 end AS ind_still_dhia
,AS52_ITRA_MSHRCHT   
,CASE WHEN VBM451_ACT_LOAN_AGR_SYMBOL.Delayed_Deal_Code= 'T460V1' AND VBM410.Total_Delay_Bal_Amt &amp;lt;&amp;gt; 0 THEN 1 ELSE 0 end AS ind_Delayed_Deal

,Sum(ZeroIfNull(VBM410.Daily_Bal_Amt)+ZeroIfNull(VBM410.Fund_Linkage_Diff_Bal_Amt)+ZeroIfNull(VBM410.Temporary_Interest_Bal_Amt)+ZeroIfNull(VBM410.Temp_Int_Link_Diff_Bal_Amt)) AS ITRA_AHRONA
,Sum(ZeroIfNull(LOAN_BAL_DHIA.Next_Payment_Amt_Nis )) AS Payment_Amt_DHIA
,Sum(ZeroIfNull(LOAN_BAL_PREV.Next_Payment_Amt_Nis )) AS Payment_Amt_PREV 
,CASE WHEN Payment_Amt_DHIA = 0 AND Payment_Amt_PREV = 0 THEN 0 ELSE  Abs(CASE WHEN FULL_DHIA = 1 OR (Payment_Amt_PREV = 0 AND Payment_Amt_DHIA &amp;lt;&amp;gt; 0 ) THEN 100 ELSE (Payment_Amt_DHIA/Payment_Amt_PREV -1)*100 END) end AS reduce_rate
FROM 
VBM5732_AGR_DELAYED_PAYMENTS AS DHIA_TASH 
INNER JOIN VBM374_USED_BRANCH_CUSTOMER AS  VBM374
ON DHIA_TASH.Prev_Branch_Cust_IP = VBM374.Branch_Cust_IP
LEFT JOIN V01X997_IP_REGULATORY_ACTIVITY_SEGMENT  AS V01X997
ON (VBM374.Branch_Cust_IP = V01X997.Inv_Party_Id OR VBM374.Current_Branch_Cust_IP= V01X997.Inv_Party_Id) AND V01X997.Validity_Date = (SELECT Max(Validity_Date) FROM V01X997_IP_REGULATORY_ACTIVITY_SEGMENT) 
AND V01X997.Customer_Segment IN  (1000,2000,3110,3120,3200,3300)
INNER JOIN VBM442_AGREEMENTS AS VBM442
  ON (VBM442.Branch_Cust_IP=VBM374.Branch_Cust_IP AND DHIA_TASH.Prev_Agr_Id=VBM442.Agreement_Account_Id )
 LEFT JOIN V00X613_EXCHANGE_RATE AS V00X613
        ON V00X613.Exchange_Rate_Date = (SELECT Max(PROCESS_DATE ) FROM V797_PROCESS_DATE)
        AND AS52_MATBEA_ISKA =V00X613.Currency_Id
LEFT JOIN VBM451_ACT_LOAN_AGR_SYMBOL 
ON (VBM451_ACT_LOAN_AGR_SYMBOL.Agreement_Account_Id=VBM442.Agreement_Account_Id)
 LEFT JOIN VBM452_ACT_LOAN_AGR_TERM 
 ON (VBM452_ACT_LOAN_AGR_TERM.Agreement_Account_Id=VBM442.Agreement_Account_Id)
INNER JOIN VBM321_PRODUCTS
ON (VBM321_PRODUCTS.Product_Id=VBM442.Product_Id)
LEFT JOIN V02X17_PRODUCT_CREDITS
ON (V02X17_PRODUCT_CREDITS.Product_Id=VBM321_PRODUCTS.Product_Id AND VBM321_PRODUCTS.Subject_Code='AS')
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS VBM410
ON VBM410.Agreement_Account_Id = DHIA_TASH.Curr_Agr_Id AND VBM410.Agreement_Summary_Date =(SEL END_DATE FROM VT5727_DATES_M)
INNER JOIN VBM442_AGREEMENTS AS VBM442_CURR 
  ON (VBM442_CURR.Branch_Cust_IP=VBM374.Current_Branch_Cust_IP AND DHIA_TASH.Curr_Agr_Id=VBM442_CURR.Agreement_Account_Id )
LEFT JOIN VBM448_ACT_LOAN_AGR_RATE 
ON VBM448_ACT_LOAN_AGR_RATE.Agreement_Account_Id=VBM442_CURR.Agreement_Account_Id 
LEFT JOIN 
		 (SELECT
		LOAN_BAL_PREV.Agreement_Account_Id,
		Max(LOAN_BAL_PREV.Agreement_Summary_Date ) AS max_date
		FROM 
		VBM5732_AGR_DELAYED_PAYMENTS AS DHIA_TASH
		INNER JOIN VBM442_AGREEMENTS AS VBM442
		  ON (DHIA_TASH.Prev_Agr_Id=VBM442.Agreement_Account_Id )
		LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_PREV
		ON (VBM442.Agreement_Account_Id=LOAN_BAL_PREV.Agreement_Account_Id  )
		WHERE LOAN_BAL_PREV.Agreement_Summary_Date  &amp;lt; DHIA_TASH.AS52_TAR_DHIA
		AND DHIA_TASH.Validity_Date = (SELECT Max(Validity_Date) FROM VBM5732_AGR_DELAYED_PAYMENTS)
		AND AS52_TAR_DHIA BETWEEN 1231001 AND  (SEL END_DATE FROM VT5727_DATES_M)
		AND ((AS52_SHIUCH_CHAT NOT IN (833,835) AND AS52_MIS_CHODASHIM  BETWEEN 2 AND 24) OR (AS52_SHIUCH_CHAT IN (833,835) AND AS52_MIS_CHODASHIM&amp;gt;0))
		AND AS52_TAR_KEREN_AFT - AS52_TAR_KEREN_KDM  &amp;gt;0 
		GROUP BY 1) AS LOAN_max_date 
ON (VBM442.Agreement_Account_Id=LOAN_max_date.Agreement_Account_Id)
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_PREV
ON (LOAN_max_date.Agreement_Account_Id=LOAN_BAL_PREV.Agreement_Account_Id AND LOAN_BAL_PREV.Agreement_Summary_Date  = LOAN_max_date.max_date ) 
LEFT JOIN VA7836_HARAVOT_BARZEL_POP AS VA7836 
ON VA7836.Branch_Cust_IP = VBM374.Branch_Cust_IP
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_DHIA 
ON (VBM442.Agreement_Account_Id=LOAN_BAL_DHIA.Agreement_Account_Id AND LOAN_BAL_DHIA.Agreement_Summary_Date = DHIA_TASH.AS52_TAR_DHIA)
WHERE 
AS52_TAR_DHIA BETWEEN 1231001 AND  (SEL END_DATE FROM VT5727_DATES_M)
AND DHIA_TASH.Validity_Date = (SELECT Max(Validity_Date) FROM VBM5732_AGR_DELAYED_PAYMENTS)
AND ((AS52_SHIUCH_CHAT NOT IN (833,835)  AND AS52_MIS_CHODASHIM  BETWEEN 2 AND 24) OR (AS52_SHIUCH_CHAT IN (833,835) AND AS52_MIS_CHODASHIM&amp;gt;0))
AND AS52_TAR_KEREN_AFT - AS52_TAR_KEREN_KDM  &amp;gt;0 
AND VBM442.Agreement_Category_Code  =  3 
AND VBM374.Status_Code&amp;lt;&amp;gt; 'T295V51'
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
) WITH DATA PRIMARY INDEX (Current_Branch_Cust_IP,Branch_Cust_IP,Agreement_Account_Id,AS52_TAR_DHIA) ON COMMIT PRESERVE ROWS ;



CREATE VOLATILE TABLE VT5727_LOANS_PIGUR AS (
SELECT
  LOANS_M.Branch_Cust_IP,
  LOANS_M.Agreement_Account_Id,
  VBM442_AGREEMENTS.Agreement_Account_Id AS Agreement_Account_Id_pigur,
  VBM442_AGREEMENTS.Loan_Model_Code,
  VBM442_AGREEMENTS.Loan_Serial_Nbr,
  VBM442_AGREEMENTS.Loan_Type_Code,
  V03X30_LOAN_AGREEMENT.Loan_Value_Date AS pigur_date_ForInPigurToday
FROM
VT5727_POP_LOANS_M AS LOANS_M
INNER JOIN VBM442_AGREEMENTS
ON  (VBM442_AGREEMENTS.Branch_Cust_IP=LOANS_M.Branch_Cust_IP AND VBM442_AGREEMENTS.Loan_Model_Code = LOANS_M.Loan_Model_Code
     AND VBM442_AGREEMENTS.Loan_Serial_Nbr=LOANS_M.Loan_Serial_Nbr )
INNER JOIN V03X30_LOAN_AGREEMENT 
ON (V03X30_LOAN_AGREEMENT.Agreement_Account_Id=VBM442_AGREEMENTS.Agreement_Account_Id AND V03X30_LOAN_AGREEMENT.Loan_Value_Date&amp;gt;= LOANS_M.agreement_open_date)
WHERE
VBM442_AGREEMENTS.Agreement_Category_Code  =  3
AND VBM442_AGREEMENTS.Loan_Type_Code  IN  ( 11, 21, 22  )  
AND LOANS_M.ind_Delayed_Deal = 1  
) WITH DATA PRIMARY INDEX (Branch_Cust_IP,Agreement_Account_Id,Agreement_Account_Id_pigur) ON COMMIT PRESERVE ROWS ;


  &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, 08 Jan 2024 12:22:52 GMT</pubDate>
    <dc:creator>Ronein</dc:creator>
    <dc:date>2024-01-08T12:22:52Z</dc:date>
    <item>
      <title>Create Volatile Teradata table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910840#M359170</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;I run query in SAS that work on TeraData tables.&lt;/P&gt;
&lt;P&gt;The query has two parts:&lt;/P&gt;
&lt;P&gt;Step1- Create table&amp;nbsp;t_dates (Based on data from Tera table&amp;nbsp;VBM5732_AGR_DELAYED_PAYMENTS)&lt;/P&gt;
&lt;P&gt;Step2-Create table Want (Based on data from Tera table&amp;nbsp;VBM5732_AGR_DELAYED_PAYMENTS and&amp;nbsp;t_dates table)&lt;/P&gt;
&lt;P&gt;The current code create SAS data set&amp;nbsp;&amp;nbsp;t_dates&amp;nbsp; in Step1 and then get error in step 2 because it mixed merge of SAS data set with Tera tables.&lt;/P&gt;
&lt;P&gt;My question-&lt;/P&gt;
&lt;P&gt;How should I run the code in order to create Tera Violate table in step 1 and then use this table in step2.&lt;/P&gt;
&lt;P&gt;Please see the libname code for teradata.&lt;/P&gt;
&lt;P&gt;May anyone show the full code that perform the desired task?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;libname RON teradata server=dwprod schema=DWP_vall authdomain=TeraDataAuth CONNECTION=GLOBAL  dbmstemp=yes ;
 
proc sql;  
connect to teradata (server=dwprod schema=DWP_vall authdomain=TeraDataAuth);
create table t_dates   as 
select * from connection to teradata
(
SELECT (CAST('01/01/2024' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE ,
        Max(PROCESS_DATE) as End_Date 
FROM   V797_PROCESS_DATE
);
disconnect from teradata;
quit ;

proc sql;  
connect to teradata (server=dwprod schema=DWP_vall authdomain=TeraDataAuth);
create table want  as 
select * from connection to teradata
(
SELECT  a.*
FROM VBM5732_AGR_DELAYED_PAYMENTS  AS a 
Where AS52_TAR_DHIA BETWEEN(SEL START_DATE FROM t_dates)  AND (SEL END_DATE FROM t_dates)
);
disconnect from teradata;
quit ;
 &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 14:35:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910840#M359170</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T14:35:01Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910842#M359171</link>
      <description>&lt;P&gt;This cannot work. A volatile table is automatically removed when a session ends (similar to WORK in SAS), and each CONNECT represents a separate session. You must create &lt;U&gt;and&lt;/U&gt; use the table while the same connection within a single PROC SQL is active.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 11:49:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910842#M359171</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2024-01-08T11:49:22Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910844#M359172</link>
      <description>&lt;P&gt;Based on one of your other posts there is already a pre-assigned library &lt;EM&gt;teradata&lt;/EM&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now looking into the code you shared here why bother with creating a volatile table? The untested code below should do the same job.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
  connect using TeraData;  

  create table want  as 
  select * 
  from connection to teradata
  (
    SELECT  a.*
    FROM 
    VBM5732_AGR_DELAYED_PAYMENTS AS a 
    inner join 
    (
      SELECT (CAST('01/01/2024' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE ,
      Max(PROCESS_DATE) as End_Date 
      FROM V797_PROCESS_DATE
    ) as b
    on a.AS52_TAR_DHIA between b.START_DATE and b.End_Date
  )
  ;
quit;&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, 08 Jan 2024 12:12:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910844#M359172</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-08T12:12:21Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910845#M359173</link>
      <description>&lt;P&gt;Can you please show the full code and I will run it and try if it works.&lt;/P&gt;
&lt;P&gt;Here is the code I try to run now and got error&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; proc sql;  
connect to teradata (server=dwprod schema=DWP_vall authdomain=TeraDataAuth);


create table t_dates   as 
select * from connection to teradata
(
SELECT (CAST('01/01/2024' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE ,
        Max(PROCESS_DATE) as End_Date 
FROM   V797_PROCESS_DATE
);


create table want  as 
select * from connection to teradata
(
SELECT  a.*
FROM VBM5732_AGR_DELAYED_PAYMENTS  AS a 
Where AS52_TAR_DHIA BETWEEN(SEL START_DATE FROM t_dates)  AND (SEL END_DATE FROM t_dates)
);

disconnect from teradata;
quit ;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Error in Log&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;ERROR: Teradata prepare: Object 't_dates' does not exist. SQL statement was: SELECT a.* FROM VBM5732_AGR_DELAYED_PAYMENTS AS a 
       Where AS52_TAR_DHIA BETWEEN(SEL START_DATE FROM t_dates) AND (SEL END_DATE FROM t_dates).
&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, 08 Jan 2024 12:14:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910845#M359173</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T12:14:24Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910846#M359174</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;Forget about the volatile table for your use case. You can have this easier.&lt;/P&gt;
&lt;P&gt;I already posted one option, here a 2nd one.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options msglevel=i sastrace=',,,d' sastraceloc=saslog nostsuffix;
proc sql;
  select put(max(process_date),date9.) into :max_process_date trimmed
  from teradata.V797_PROCESS_DATE
  ;
quit;

proc sql;
  create table want as
  select *
  from teradata.VBM5732_AGR_DELAYED_PAYMENTS
  where AS52_TAR_DHIA between "01jan2024"d and "&amp;amp;max_process_date"d
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:21:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910846#M359174</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-08T12:21:01Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910847#M359175</link>
      <description>&lt;P&gt;Your code is working 100% , however I want to learn to do it in the following way:&lt;/P&gt;
&lt;P&gt;Create violate table&amp;nbsp;t_dates&amp;nbsp; and then create&amp;nbsp;violate table&amp;nbsp;VBM376_INTERNAL_ORGANIZATION.&lt;/P&gt;
&lt;P&gt;In real word there is a query that run on tera and I want to run it on SAS.&lt;/P&gt;
&lt;P&gt;This query is long and&amp;nbsp; during this process there are 3 violate tables that are created.&lt;/P&gt;
&lt;P&gt;My question- How to run this long query in SAS?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;


CREATE VOLATILE TABLE  VT5727_DATES_M  AS (
SELECT Max(PROCESS_DATE )   AS END_DATE  
,(CAST('01/10/2023' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE 
,END_DATE/ 100 + 190000 AS MONTH_REPORTED        
FROM   V797_PROCESS_DATE  
)WITH DATA ON COMMIT PRESERVE ROWS; 
 


CREATE VOLATILE TABLE VT5727_POP_LOANS_M AS (
SELECT DISTINCT
DATE AS Run_Date
,VBM374.first_Branch_Cust_IP as  Numerator_DWH 
,VBM374.Branch_Cust_IP
,VBM374.Current_Branch_Cust_IP
,VBM374.Branch_Cust_Nbr
,VBM374.Branch_Nbr
,AS52_SHIUCH_CHAT AS division_nbr    

,DHIA_TASH.AS52_MIS_CHODASHIM 
,DHIA_TASH.AS52_TEDIRUT_KEREN  
,DHIA_TASH.AS52_SUG_DHIA 

,CASE WHEN AS52_SUG_DHIA IN (0,1) THEN  Cast ( DHIA_TASH.AS52_SCHUM_DHIA AS DECIMAL(18,0)) *(V00X613.Exchange_Rate / V00X613.Exchange_Rate_Calc_Currency_Am) ELSE  ZeroIfNull(LOAN_BAL_PREV.Next_Payment_Amt_Nis )   END AS  SCHUM_DHIA 
,DHIA_TASH.AS52_TAR_DHIA 
,CASE WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V1' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM 
	WHEN DHIA_TASH.AS52_TEDIRUT_KEREN IN ('T1037V0','T1037V12') THEN SCHUM_DHIA 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V3' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM/3 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V6' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM/6 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V2' AND DHIA_TASH.AS52_MIS_CHODASHIM BETWEEN 3 AND 4 THEN SCHUM_DHIA * 2 
	  ELSE SCHUM_DHIA * DHIA_TASH.AS52_MIS_CHODASHIM/2  
	  END AS SCHUM_TASHLOMIM_NIDHO 
  
,DHIA_TASH.Curr_Agr_Id AS Agreement_Account_Id 
,VBM442.agreement_open_date 
,VBM442_CURR.Agreement_Due_Close_Date 
,VBM448_ACT_LOAN_AGR_RATE.Interest_Pct
,CASE WHEN DHIA_TASH.AS52_SUG_DHIA = '2' THEN  1 ELSE 0 end AS ind_mitveh_israel    
,VBM442.Loan_Model_Code 
,VBM442.Loan_Serial_Nbr 
,VBM442.loan_type_code 
,CASE WHEN Substr(V02X17_PRODUCT_CREDITS.Type_Of_Sector_Code,6,3)= '45' THEN 1 ELSE 0 END AS ind_house_loan 
,DHIA_TASH.AS52_TAR_KEREN_AFT
,DHIA_TASH.AS52_TAR_RIBIT_AFT

,Greatest(DHIA_TASH.AS52_TAR_KEREN_AFT,VBM452_ACT_LOAN_AGR_TERM.Fund_Next_Pmt_Date) AS END_DHIA_DATE
,CASE WHEN (DHIA_TASH.AS52_TAR_KEREN_AFT/ 100 + 190000) = (DHIA_TASH.AS52_TAR_RIBIT_AFT/ 100 + 190000)  THEN 1 ELSE 0 END AS FULL_DHIA
,DHIA_TASH.AS52_ITRA_MSHRCHT_ACHARON 
,CASE WHEN END_DHIA_DATE &amp;gt; (SEL END_DATE FROM VT5727_DATES_M) THEN 1 ELSE 0 end AS ind_still_dhia
,AS52_ITRA_MSHRCHT   
,CASE WHEN VBM451_ACT_LOAN_AGR_SYMBOL.Delayed_Deal_Code= 'T460V1' AND VBM410.Total_Delay_Bal_Amt &amp;lt;&amp;gt; 0 THEN 1 ELSE 0 end AS ind_Delayed_Deal

,Sum(ZeroIfNull(VBM410.Daily_Bal_Amt)+ZeroIfNull(VBM410.Fund_Linkage_Diff_Bal_Amt)+ZeroIfNull(VBM410.Temporary_Interest_Bal_Amt)+ZeroIfNull(VBM410.Temp_Int_Link_Diff_Bal_Amt)) AS ITRA_AHRONA
,Sum(ZeroIfNull(LOAN_BAL_DHIA.Next_Payment_Amt_Nis )) AS Payment_Amt_DHIA
,Sum(ZeroIfNull(LOAN_BAL_PREV.Next_Payment_Amt_Nis )) AS Payment_Amt_PREV 
,CASE WHEN Payment_Amt_DHIA = 0 AND Payment_Amt_PREV = 0 THEN 0 ELSE  Abs(CASE WHEN FULL_DHIA = 1 OR (Payment_Amt_PREV = 0 AND Payment_Amt_DHIA &amp;lt;&amp;gt; 0 ) THEN 100 ELSE (Payment_Amt_DHIA/Payment_Amt_PREV -1)*100 END) end AS reduce_rate
FROM 
VBM5732_AGR_DELAYED_PAYMENTS AS DHIA_TASH 
INNER JOIN VBM374_USED_BRANCH_CUSTOMER AS  VBM374
ON DHIA_TASH.Prev_Branch_Cust_IP = VBM374.Branch_Cust_IP
LEFT JOIN V01X997_IP_REGULATORY_ACTIVITY_SEGMENT  AS V01X997
ON (VBM374.Branch_Cust_IP = V01X997.Inv_Party_Id OR VBM374.Current_Branch_Cust_IP= V01X997.Inv_Party_Id) AND V01X997.Validity_Date = (SELECT Max(Validity_Date) FROM V01X997_IP_REGULATORY_ACTIVITY_SEGMENT) 
AND V01X997.Customer_Segment IN  (1000,2000,3110,3120,3200,3300)
INNER JOIN VBM442_AGREEMENTS AS VBM442
  ON (VBM442.Branch_Cust_IP=VBM374.Branch_Cust_IP AND DHIA_TASH.Prev_Agr_Id=VBM442.Agreement_Account_Id )
 LEFT JOIN V00X613_EXCHANGE_RATE AS V00X613
        ON V00X613.Exchange_Rate_Date = (SELECT Max(PROCESS_DATE ) FROM V797_PROCESS_DATE)
        AND AS52_MATBEA_ISKA =V00X613.Currency_Id
LEFT JOIN VBM451_ACT_LOAN_AGR_SYMBOL 
ON (VBM451_ACT_LOAN_AGR_SYMBOL.Agreement_Account_Id=VBM442.Agreement_Account_Id)
 LEFT JOIN VBM452_ACT_LOAN_AGR_TERM 
 ON (VBM452_ACT_LOAN_AGR_TERM.Agreement_Account_Id=VBM442.Agreement_Account_Id)
INNER JOIN VBM321_PRODUCTS
ON (VBM321_PRODUCTS.Product_Id=VBM442.Product_Id)
LEFT JOIN V02X17_PRODUCT_CREDITS
ON (V02X17_PRODUCT_CREDITS.Product_Id=VBM321_PRODUCTS.Product_Id AND VBM321_PRODUCTS.Subject_Code='AS')
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS VBM410
ON VBM410.Agreement_Account_Id = DHIA_TASH.Curr_Agr_Id AND VBM410.Agreement_Summary_Date =(SEL END_DATE FROM VT5727_DATES_M)
INNER JOIN VBM442_AGREEMENTS AS VBM442_CURR 
  ON (VBM442_CURR.Branch_Cust_IP=VBM374.Current_Branch_Cust_IP AND DHIA_TASH.Curr_Agr_Id=VBM442_CURR.Agreement_Account_Id )
LEFT JOIN VBM448_ACT_LOAN_AGR_RATE 
ON VBM448_ACT_LOAN_AGR_RATE.Agreement_Account_Id=VBM442_CURR.Agreement_Account_Id 
LEFT JOIN 
		 (SELECT
		LOAN_BAL_PREV.Agreement_Account_Id,
		Max(LOAN_BAL_PREV.Agreement_Summary_Date ) AS max_date
		FROM 
		VBM5732_AGR_DELAYED_PAYMENTS AS DHIA_TASH
		INNER JOIN VBM442_AGREEMENTS AS VBM442
		  ON (DHIA_TASH.Prev_Agr_Id=VBM442.Agreement_Account_Id )
		LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_PREV
		ON (VBM442.Agreement_Account_Id=LOAN_BAL_PREV.Agreement_Account_Id  )
		WHERE LOAN_BAL_PREV.Agreement_Summary_Date  &amp;lt; DHIA_TASH.AS52_TAR_DHIA
		AND DHIA_TASH.Validity_Date = (SELECT Max(Validity_Date) FROM VBM5732_AGR_DELAYED_PAYMENTS)
		AND AS52_TAR_DHIA BETWEEN 1231001 AND  (SEL END_DATE FROM VT5727_DATES_M)
		AND ((AS52_SHIUCH_CHAT NOT IN (833,835) AND AS52_MIS_CHODASHIM  BETWEEN 2 AND 24) OR (AS52_SHIUCH_CHAT IN (833,835) AND AS52_MIS_CHODASHIM&amp;gt;0))
		AND AS52_TAR_KEREN_AFT - AS52_TAR_KEREN_KDM  &amp;gt;0 
		GROUP BY 1) AS LOAN_max_date 
ON (VBM442.Agreement_Account_Id=LOAN_max_date.Agreement_Account_Id)
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_PREV
ON (LOAN_max_date.Agreement_Account_Id=LOAN_BAL_PREV.Agreement_Account_Id AND LOAN_BAL_PREV.Agreement_Summary_Date  = LOAN_max_date.max_date ) 
LEFT JOIN VA7836_HARAVOT_BARZEL_POP AS VA7836 
ON VA7836.Branch_Cust_IP = VBM374.Branch_Cust_IP
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_DHIA 
ON (VBM442.Agreement_Account_Id=LOAN_BAL_DHIA.Agreement_Account_Id AND LOAN_BAL_DHIA.Agreement_Summary_Date = DHIA_TASH.AS52_TAR_DHIA)
WHERE 
AS52_TAR_DHIA BETWEEN 1231001 AND  (SEL END_DATE FROM VT5727_DATES_M)
AND DHIA_TASH.Validity_Date = (SELECT Max(Validity_Date) FROM VBM5732_AGR_DELAYED_PAYMENTS)
AND ((AS52_SHIUCH_CHAT NOT IN (833,835)  AND AS52_MIS_CHODASHIM  BETWEEN 2 AND 24) OR (AS52_SHIUCH_CHAT IN (833,835) AND AS52_MIS_CHODASHIM&amp;gt;0))
AND AS52_TAR_KEREN_AFT - AS52_TAR_KEREN_KDM  &amp;gt;0 
AND VBM442.Agreement_Category_Code  =  3 
AND VBM374.Status_Code&amp;lt;&amp;gt; 'T295V51'
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
) WITH DATA PRIMARY INDEX (Current_Branch_Cust_IP,Branch_Cust_IP,Agreement_Account_Id,AS52_TAR_DHIA) ON COMMIT PRESERVE ROWS ;



CREATE VOLATILE TABLE VT5727_LOANS_PIGUR AS (
SELECT
  LOANS_M.Branch_Cust_IP,
  LOANS_M.Agreement_Account_Id,
  VBM442_AGREEMENTS.Agreement_Account_Id AS Agreement_Account_Id_pigur,
  VBM442_AGREEMENTS.Loan_Model_Code,
  VBM442_AGREEMENTS.Loan_Serial_Nbr,
  VBM442_AGREEMENTS.Loan_Type_Code,
  V03X30_LOAN_AGREEMENT.Loan_Value_Date AS pigur_date_ForInPigurToday
FROM
VT5727_POP_LOANS_M AS LOANS_M
INNER JOIN VBM442_AGREEMENTS
ON  (VBM442_AGREEMENTS.Branch_Cust_IP=LOANS_M.Branch_Cust_IP AND VBM442_AGREEMENTS.Loan_Model_Code = LOANS_M.Loan_Model_Code
     AND VBM442_AGREEMENTS.Loan_Serial_Nbr=LOANS_M.Loan_Serial_Nbr )
INNER JOIN V03X30_LOAN_AGREEMENT 
ON (V03X30_LOAN_AGREEMENT.Agreement_Account_Id=VBM442_AGREEMENTS.Agreement_Account_Id AND V03X30_LOAN_AGREEMENT.Loan_Value_Date&amp;gt;= LOANS_M.agreement_open_date)
WHERE
VBM442_AGREEMENTS.Agreement_Category_Code  =  3
AND VBM442_AGREEMENTS.Loan_Type_Code  IN  ( 11, 21, 22  )  
AND LOANS_M.ind_Delayed_Deal = 1  
) WITH DATA PRIMARY INDEX (Branch_Cust_IP,Agreement_Account_Id,Agreement_Account_Id_pigur) ON COMMIT PRESERVE ROWS ;


  &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, 08 Jan 2024 12:22:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910847#M359175</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T12:22:52Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910851#M359177</link>
      <description>&lt;P&gt;It is perfect but It cannot help me to solve my real problem.&lt;/P&gt;
&lt;P&gt;My real problem is that I need to move code that run in Tera to run in&amp;nbsp; SAS and this query have multiple steps where in each step create violtate table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is the code that I need to run in SAS&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;


CREATE VOLATILE TABLE  VT5727_DATES_M  AS (
SELECT Max(PROCESS_DATE )   AS END_DATE  
,(CAST('01/10/2023' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE 
,END_DATE/ 100 + 190000 AS MONTH_REPORTED        
FROM   V797_PROCESS_DATE  
)WITH DATA ON COMMIT PRESERVE ROWS; 
 


CREATE VOLATILE TABLE VT5727_POP_LOANS_M AS (
SELECT DISTINCT
DATE AS Run_Date
,VBM374.first_Branch_Cust_IP as  Numerator_DWH 
,VBM374.Branch_Cust_IP
,VBM374.Current_Branch_Cust_IP
,VBM374.Branch_Cust_Nbr
,VBM374.Branch_Nbr
,AS52_SHIUCH_CHAT AS division_nbr    

,DHIA_TASH.AS52_MIS_CHODASHIM 
,DHIA_TASH.AS52_TEDIRUT_KEREN  
,DHIA_TASH.AS52_SUG_DHIA 

,CASE WHEN AS52_SUG_DHIA IN (0,1) THEN  Cast ( DHIA_TASH.AS52_SCHUM_DHIA AS DECIMAL(18,0)) *(V00X613.Exchange_Rate / V00X613.Exchange_Rate_Calc_Currency_Am) ELSE  ZeroIfNull(LOAN_BAL_PREV.Next_Payment_Amt_Nis )   END AS  SCHUM_DHIA 
,DHIA_TASH.AS52_TAR_DHIA 
,CASE WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V1' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM 
	WHEN DHIA_TASH.AS52_TEDIRUT_KEREN IN ('T1037V0','T1037V12') THEN SCHUM_DHIA 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V3' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM/3 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V6' THEN SCHUM_DHIA* DHIA_TASH.AS52_MIS_CHODASHIM/6 
	 WHEN DHIA_TASH.AS52_TEDIRUT_KEREN = 'T1037V2' AND DHIA_TASH.AS52_MIS_CHODASHIM BETWEEN 3 AND 4 THEN SCHUM_DHIA * 2 
	  ELSE SCHUM_DHIA * DHIA_TASH.AS52_MIS_CHODASHIM/2  
	  END AS SCHUM_TASHLOMIM_NIDHO 
  
,DHIA_TASH.Curr_Agr_Id AS Agreement_Account_Id 
,VBM442.agreement_open_date 
,VBM442_CURR.Agreement_Due_Close_Date 
,VBM448_ACT_LOAN_AGR_RATE.Interest_Pct
,CASE WHEN DHIA_TASH.AS52_SUG_DHIA = '2' THEN  1 ELSE 0 end AS ind_mitveh_israel    
,VBM442.Loan_Model_Code 
,VBM442.Loan_Serial_Nbr 
,VBM442.loan_type_code 
,CASE WHEN Substr(V02X17_PRODUCT_CREDITS.Type_Of_Sector_Code,6,3)= '45' THEN 1 ELSE 0 END AS ind_house_loan 
,DHIA_TASH.AS52_TAR_KEREN_AFT
,DHIA_TASH.AS52_TAR_RIBIT_AFT

,Greatest(DHIA_TASH.AS52_TAR_KEREN_AFT,VBM452_ACT_LOAN_AGR_TERM.Fund_Next_Pmt_Date) AS END_DHIA_DATE
,CASE WHEN (DHIA_TASH.AS52_TAR_KEREN_AFT/ 100 + 190000) = (DHIA_TASH.AS52_TAR_RIBIT_AFT/ 100 + 190000)  THEN 1 ELSE 0 END AS FULL_DHIA
,DHIA_TASH.AS52_ITRA_MSHRCHT_ACHARON 
,CASE WHEN END_DHIA_DATE &amp;gt; (SEL END_DATE FROM VT5727_DATES_M) THEN 1 ELSE 0 end AS ind_still_dhia
,AS52_ITRA_MSHRCHT   
,CASE WHEN VBM451_ACT_LOAN_AGR_SYMBOL.Delayed_Deal_Code= 'T460V1' AND VBM410.Total_Delay_Bal_Amt &amp;lt;&amp;gt; 0 THEN 1 ELSE 0 end AS ind_Delayed_Deal

,Sum(ZeroIfNull(VBM410.Daily_Bal_Amt)+ZeroIfNull(VBM410.Fund_Linkage_Diff_Bal_Amt)+ZeroIfNull(VBM410.Temporary_Interest_Bal_Amt)+ZeroIfNull(VBM410.Temp_Int_Link_Diff_Bal_Amt)) AS ITRA_AHRONA
,Sum(ZeroIfNull(LOAN_BAL_DHIA.Next_Payment_Amt_Nis )) AS Payment_Amt_DHIA
,Sum(ZeroIfNull(LOAN_BAL_PREV.Next_Payment_Amt_Nis )) AS Payment_Amt_PREV 
,CASE WHEN Payment_Amt_DHIA = 0 AND Payment_Amt_PREV = 0 THEN 0 ELSE  Abs(CASE WHEN FULL_DHIA = 1 OR (Payment_Amt_PREV = 0 AND Payment_Amt_DHIA &amp;lt;&amp;gt; 0 ) THEN 100 ELSE (Payment_Amt_DHIA/Payment_Amt_PREV -1)*100 END) end AS reduce_rate
FROM 
VBM5732_AGR_DELAYED_PAYMENTS AS DHIA_TASH 
INNER JOIN VBM374_USED_BRANCH_CUSTOMER AS  VBM374
ON DHIA_TASH.Prev_Branch_Cust_IP = VBM374.Branch_Cust_IP
LEFT JOIN V01X997_IP_REGULATORY_ACTIVITY_SEGMENT  AS V01X997
ON (VBM374.Branch_Cust_IP = V01X997.Inv_Party_Id OR VBM374.Current_Branch_Cust_IP= V01X997.Inv_Party_Id) AND V01X997.Validity_Date = (SELECT Max(Validity_Date) FROM V01X997_IP_REGULATORY_ACTIVITY_SEGMENT) 
AND V01X997.Customer_Segment IN  (1000,2000,3110,3120,3200,3300)
INNER JOIN VBM442_AGREEMENTS AS VBM442
  ON (VBM442.Branch_Cust_IP=VBM374.Branch_Cust_IP AND DHIA_TASH.Prev_Agr_Id=VBM442.Agreement_Account_Id )
 LEFT JOIN V00X613_EXCHANGE_RATE AS V00X613
        ON V00X613.Exchange_Rate_Date = (SELECT Max(PROCESS_DATE ) FROM V797_PROCESS_DATE)
        AND AS52_MATBEA_ISKA =V00X613.Currency_Id
LEFT JOIN VBM451_ACT_LOAN_AGR_SYMBOL 
ON (VBM451_ACT_LOAN_AGR_SYMBOL.Agreement_Account_Id=VBM442.Agreement_Account_Id)
 LEFT JOIN VBM452_ACT_LOAN_AGR_TERM 
 ON (VBM452_ACT_LOAN_AGR_TERM.Agreement_Account_Id=VBM442.Agreement_Account_Id)
INNER JOIN VBM321_PRODUCTS
ON (VBM321_PRODUCTS.Product_Id=VBM442.Product_Id)
LEFT JOIN V02X17_PRODUCT_CREDITS
ON (V02X17_PRODUCT_CREDITS.Product_Id=VBM321_PRODUCTS.Product_Id AND VBM321_PRODUCTS.Subject_Code='AS')
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS VBM410
ON VBM410.Agreement_Account_Id = DHIA_TASH.Curr_Agr_Id AND VBM410.Agreement_Summary_Date =(SEL END_DATE FROM VT5727_DATES_M)
INNER JOIN VBM442_AGREEMENTS AS VBM442_CURR 
  ON (VBM442_CURR.Branch_Cust_IP=VBM374.Current_Branch_Cust_IP AND DHIA_TASH.Curr_Agr_Id=VBM442_CURR.Agreement_Account_Id )
LEFT JOIN VBM448_ACT_LOAN_AGR_RATE 
ON VBM448_ACT_LOAN_AGR_RATE.Agreement_Account_Id=VBM442_CURR.Agreement_Account_Id 
LEFT JOIN 
		 (SELECT
		LOAN_BAL_PREV.Agreement_Account_Id,
		Max(LOAN_BAL_PREV.Agreement_Summary_Date ) AS max_date
		FROM 
		VBM5732_AGR_DELAYED_PAYMENTS AS DHIA_TASH
		INNER JOIN VBM442_AGREEMENTS AS VBM442
		  ON (DHIA_TASH.Prev_Agr_Id=VBM442.Agreement_Account_Id )
		LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_PREV
		ON (VBM442.Agreement_Account_Id=LOAN_BAL_PREV.Agreement_Account_Id  )
		WHERE LOAN_BAL_PREV.Agreement_Summary_Date  &amp;lt; DHIA_TASH.AS52_TAR_DHIA
		AND DHIA_TASH.Validity_Date = (SELECT Max(Validity_Date) FROM VBM5732_AGR_DELAYED_PAYMENTS)
		AND AS52_TAR_DHIA BETWEEN 1231001 AND  (SEL END_DATE FROM VT5727_DATES_M)
		AND ((AS52_SHIUCH_CHAT NOT IN (833,835) AND AS52_MIS_CHODASHIM  BETWEEN 2 AND 24) OR (AS52_SHIUCH_CHAT IN (833,835) AND AS52_MIS_CHODASHIM&amp;gt;0))
		AND AS52_TAR_KEREN_AFT - AS52_TAR_KEREN_KDM  &amp;gt;0 
		GROUP BY 1) AS LOAN_max_date 
ON (VBM442.Agreement_Account_Id=LOAN_max_date.Agreement_Account_Id)
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_PREV
ON (LOAN_max_date.Agreement_Account_Id=LOAN_BAL_PREV.Agreement_Account_Id AND LOAN_BAL_PREV.Agreement_Summary_Date  = LOAN_max_date.max_date ) 
LEFT JOIN VA7836_HARAVOT_BARZEL_POP AS VA7836 
ON VA7836.Branch_Cust_IP = VBM374.Branch_Cust_IP
LEFT JOIN VBM410_ACTIVE_LOAN_BAL AS LOAN_BAL_DHIA 
ON (VBM442.Agreement_Account_Id=LOAN_BAL_DHIA.Agreement_Account_Id AND LOAN_BAL_DHIA.Agreement_Summary_Date = DHIA_TASH.AS52_TAR_DHIA)
WHERE 
AS52_TAR_DHIA BETWEEN 1231001 AND  (SEL END_DATE FROM VT5727_DATES_M)
AND DHIA_TASH.Validity_Date = (SELECT Max(Validity_Date) FROM VBM5732_AGR_DELAYED_PAYMENTS)
AND ((AS52_SHIUCH_CHAT NOT IN (833,835)  AND AS52_MIS_CHODASHIM  BETWEEN 2 AND 24) OR (AS52_SHIUCH_CHAT IN (833,835) AND AS52_MIS_CHODASHIM&amp;gt;0))
AND AS52_TAR_KEREN_AFT - AS52_TAR_KEREN_KDM  &amp;gt;0 
AND VBM442.Agreement_Category_Code  =  3 
AND VBM374.Status_Code&amp;lt;&amp;gt; 'T295V51'
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
) WITH DATA PRIMARY INDEX (Current_Branch_Cust_IP,Branch_Cust_IP,Agreement_Account_Id,AS52_TAR_DHIA) ON COMMIT PRESERVE ROWS ;



CREATE VOLATILE TABLE VT5727_LOANS_PIGUR AS (
SELECT
  LOANS_M.Branch_Cust_IP,
  LOANS_M.Agreement_Account_Id,
  VBM442_AGREEMENTS.Agreement_Account_Id AS Agreement_Account_Id_pigur,
  VBM442_AGREEMENTS.Loan_Model_Code,
  VBM442_AGREEMENTS.Loan_Serial_Nbr,
  VBM442_AGREEMENTS.Loan_Type_Code,
  V03X30_LOAN_AGREEMENT.Loan_Value_Date AS pigur_date_ForInPigurToday
FROM
VT5727_POP_LOANS_M AS LOANS_M
INNER JOIN VBM442_AGREEMENTS
ON  (VBM442_AGREEMENTS.Branch_Cust_IP=LOANS_M.Branch_Cust_IP AND VBM442_AGREEMENTS.Loan_Model_Code = LOANS_M.Loan_Model_Code
     AND VBM442_AGREEMENTS.Loan_Serial_Nbr=LOANS_M.Loan_Serial_Nbr )
INNER JOIN V03X30_LOAN_AGREEMENT 
ON (V03X30_LOAN_AGREEMENT.Agreement_Account_Id=VBM442_AGREEMENTS.Agreement_Account_Id AND V03X30_LOAN_AGREEMENT.Loan_Value_Date&amp;gt;= LOANS_M.agreement_open_date)
WHERE
VBM442_AGREEMENTS.Agreement_Category_Code  =  3
AND VBM442_AGREEMENTS.Loan_Type_Code  IN  ( 11, 21, 22  )  
AND LOANS_M.ind_Delayed_Deal = 1  
) WITH DATA PRIMARY INDEX (Branch_Cust_IP,Agreement_Account_Id,Agreement_Account_Id_pigur) ON COMMIT PRESERVE ROWS ;


  &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:27:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910851#M359177</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T12:27:30Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910852#M359178</link>
      <description>&lt;P&gt;There is warning&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options msglevel=i sastrace=',,,d' sastraceloc=saslog nostsuffix;
proc sql noprint;
select put(max(process_date),date9.) into :max_process_date trimmed
from teradata.V797_PROCESS_DATE
;
quit;
/*WARNING: The format DATE was not located on the database.  In-database processing will proceed without it.*/
/*WARNING: Syntax error or access violation Syntax error: expected something between '(' and the string 'DATE'.*/

proc sql;
  create table want as
  select *
  from teradata.VBM5732_AGR_DELAYED_PAYMENTS
  where AS52_TAR_DHIA between "01jan2024"d and "&amp;amp;max_process_date"d
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:29:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910852#M359178</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T12:29:19Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910853#M359179</link>
      <description>&lt;P&gt;For running the code out of a SAS session just copy/paste it into one or multiple execute blocks.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using a single execute block has the advantage that you can be sure that everything runs on a single connection however the libname is defined (= connection type not relevant, also no need for dbmstemp).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
  connect using TeraData;  

  execute(
      CREATE VOLATILE TABLE  VT5727_DATES_M  AS (
      SELECT Max(PROCESS_DATE )   AS END_DATE  
      ,(CAST('01/10/2023' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE 
      ,END_DATE/ 100 + 190000 AS MONTH_REPORTED        
      FROM   V797_PROCESS_DATE  
      )WITH DATA ON COMMIT PRESERVE ROWS
      ; 

      CREATE VOLATILE TABLE VT5727_POP_LOANS_M AS (
      ...... and so on. Just copy/past of all your Teradata code.....    
      ;
    ) by teradata;
  ;
quit;&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, 08 Jan 2024 12:38:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910853#M359179</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-08T12:38:15Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910854#M359180</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;There is warning&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options msglevel=i sastrace=',,,d' sastraceloc=saslog nostsuffix;
proc sql noprint;
select put(max(process_date),date9.) into :max_process_date trimmed
from teradata.V797_PROCESS_DATE
;
quit;
/*WARNING: The format DATE was not located on the database.  In-database processing will proceed without it.*/
/*WARNING: Syntax error or access violation Syntax error: expected something between '(' and the string 'DATE'.*/&lt;/CODE&gt;&lt;/PRE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Then just amend the SQL. I don't have access to Teradata so can't test the code.&lt;/P&gt;
&lt;P&gt;Sometimes you actually first trying to fix things on your own would be appreciated. It's often not that hard.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
  select put(max_process_date,date9.) into :max_process_date trimmed
  from
  (
    select max(process_date) as max_process_date
    from teradata.V797_PROCESS_DATE
  )
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:35:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910854#M359180</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-08T12:35:30Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910856#M359182</link>
      <description>&lt;P&gt;Thank you!&lt;/P&gt;
&lt;P&gt;I applied your code in the following structure&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;proc sql;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;connect using TeraData; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;execute(&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;CREATE VOLATILE TABLE VT5727_DATES_M AS (&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;SELECT &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;FROM &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;)WITH DATA ON COMMIT PRESERVE ROWS&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;CREATE VOLATILE TABLE VT5727_POP_LOANS_M AS (&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;SELECT &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;FROM &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;)WITH DATA ON COMMIT PRESERVE ROWS&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;) by teradata;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;quit;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code I run is&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
connect using TeraData;  
  execute(

      CREATE VOLATILE TABLE  t_dates  AS (
		SELECT (CAST('01/01/2024' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE ,
        Max(PROCESS_DATE) as End_Date 
		FROM   V797_PROCESS_DATE
      )WITH DATA ON COMMIT PRESERVE ROWS
      ; 



      CREATE VOLATILE TABLE want AS (
		SELECT  DHIA_TASH.*
		FROM VBM5732_AGR_DELAYED_PAYMENTS  AS DHIA_TASH 
		Where AS52_TAR_DHIA BETWEEN(SEL START_DATE FROM t_dates)  AND (SEL END_DATE FROM t_dates)
	   )WITH DATA ON COMMIT PRESERVE ROWS
      ;


    ) by teradata;
  ;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I have error&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#800000"&gt;ERROR: Teradata execute: Only a COMMIT WORK or null statement is legal after a DDL Statement.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:41:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910856#M359182</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T12:41:18Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910858#M359183</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Amir_1-1704717767788.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/92378i6B8A62687D5CB979/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Amir_1-1704717767788.png" alt="Amir_1-1704717767788.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For future reference, please see&amp;nbsp;&lt;A href="https://www.google.com/search?q=volatile&amp;amp;sca_esv=596538268&amp;amp;sxsrf=AM9HkKnA3og8rIvOLLrC6ocqt2I7G_FcCA%3A1704716821269&amp;amp;ei=FeqbZYKEEPGD9u8Pz9qWsAw&amp;amp;oq=volatile&amp;amp;gs_lp=Egxnd3Mtd2l6LXNlcnAiCHZvbGF0aWxlKgIIADITEAAYgAQYigUYkQIYsQMYRhj5ATINEAAYgAQYigUYQxixAzILEAAYgAQYigUYkQIyChAAGIAEGIoFGEMyChAAGIAEGIoFGEMyChAAGIAEGIoFGEMyCBAAGIAEGLEDMgUQABiABDIIEAAYgAQYsQMyBRAAGIAEMicQABiABBiKBRiRAhixAxhGGPkBGJcFGIwFGN0EGEYY9AMY9QPYAQFI1ilQAFiKDXAAeAGQAQCYAZIBoAH1BqoBAzIuNrgBA8gBAPgBAcICChAjGIAEGIoFGCfCAhEQLhiABBixAxiDARjHARjRA8ICDhAuGIAEGLEDGMcBGNEDwgIOEC4YgAQYigUYsQMYgwHCAhAQABiABBiKBRiRAhhGGPkBwgIQEAAYgAQYigUYQxixAxiDAcICJBAAGIAEGIoFGJECGEYY-QEYlwUYjAUY3QQYRhj0Axj1A9gBAcICCxAuGIAEGMcBGK8BwgInEAAYgAQYigUYkQIYsQMYRhj5ARiXBRiMBRjdBBhGGPQDGPUD2AEB4gMEGAAgQYgGAboGBggBEAEYEw&amp;amp;sclient=gws-wiz-serp" target="_blank" rel="noopener"&gt;volatile&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://www.google.com/search?q=violate&amp;amp;sca_esv=596538268&amp;amp;sxsrf=AM9HkKkFCfFI6KUqvQXVlshvCZN5L5ETCQ%3A1704716858724&amp;amp;ei=OuqbZZ7cK8y79u8P64mlmAE&amp;amp;oq=violate&amp;amp;gs_lp=Egxnd3Mtd2l6LXNlcnAiB3Zpb2xhdGUqAggAMhIQABiABBiKBRhDGLEDGEYY-QEyCBAAGIAEGLEDMggQABiABBixAzILEAAYgAQYsQMYgwEyBRAAGIAEMgUQABiABDIFEAAYgAQyBRAAGIAEMgUQABiABDIHEC4YgAQYCjImEAAYgAQYigUYQxixAxhGGPkBGJcFGIwFGN0EGEYY9AMY9QPYAQFIvChQAFiaDHAAeAGQAQCYAa4BoAGTB6oBAzEuNrgBAcgBAPgBAcICDxAAGIAEGIoFGEMYRhj5AcICChAAGIAEGIoFGEPCAiMQABiABBiKBRhDGEYY-QEYlwUYjAUY3QQYRhj0Axj1A9gBAcICChAjGIAEGIoFGCfCAggQLhiABBixA8ICERAuGIAEGLEDGIMBGMcBGK8BwgILEC4YgAQYsQMYgwHCAg4QLhiABBiKBRixAxiDAcICCxAuGNQCGLEDGIAEwgImEAAYgAQYigUYQxixAxhGGPkBGJcFGIwFGN0EGEYY9AMY9QPYAQHCAgQQABgDwgIFEC4YgATiAwQYACBBiAYBugYGCAEQARgT&amp;amp;sclient=gws-wiz-serp" target="_blank" rel="noopener"&gt;violate&lt;/A&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;Thanks &amp;amp; kind regards,&lt;/P&gt;
&lt;P&gt;Amir.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:43:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910858#M359183</guid>
      <dc:creator>Amir</dc:creator>
      <dc:date>2024-01-08T12:43:35Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910859#M359184</link>
      <description>&lt;P&gt;I am allowed to create only&amp;nbsp;volatile&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 12:47:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910859#M359184</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T12:47:42Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910862#M359186</link>
      <description>&lt;P&gt;Just copy/pasting this error into Google would return links that then can give you some insights of what's happening here and why the copy/pasted code doesn't just work as-is.&lt;/P&gt;
&lt;P&gt;For now just try and add a commit; between the other commands.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
connect using TeraData;  
  execute(
    CREATE VOLATILE TABLE  t_dates  AS (
		SELECT (CAST('01/01/2024' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE ,
        Max(PROCESS_DATE) as End_Date 
		FROM   V797_PROCESS_DATE
      )WITH DATA ON COMMIT PRESERVE ROWS
      ; 
    commit;

    CREATE VOLATILE TABLE want AS (
		SELECT  DHIA_TASH.*
		FROM VBM5732_AGR_DELAYED_PAYMENTS  AS DHIA_TASH 
		Where AS52_TAR_DHIA BETWEEN(SEL START_DATE FROM t_dates)  AND (SEL END_DATE FROM t_dates)
	   )WITH DATA ON COMMIT PRESERVE ROWS
      ;
    commit;

    ) by teradata;
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 13:01:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910862#M359186</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-01-08T13:01:21Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910912#M359202</link>
      <description>&lt;P&gt;No Work :&lt;/P&gt;
&lt;P&gt;ERROR: Teradata connection: MTDP: EM_NOHOST(224): name not in HOSTS file or names database. .&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
libname td teradata server=dwprod schema=DWP_vall authdomain=TeraDataAuth CONNECTION=GLOBAL  dbmstemp=yes ;
proc sql;
connect using td;  
  execute(
    CREATE VOLATILE TABLE  t_dates  AS (
		SELECT (CAST('01/01/2024' AS DATE FORMAT 'DD/MM/YYYY')) as START_DATE ,
        Max(PROCESS_DATE) as End_Date 
		FROM   V797_PROCESS_DATE
      )WITH DATA ON COMMIT PRESERVE ROWS
      ; 
    commit;
    CREATE VOLATILE TABLE want AS (
		SELECT  DHIA_TASH.*
		FROM VBM5732_AGR_DELAYED_PAYMENTS  AS DHIA_TASH 
		Where AS52_TAR_DHIA BETWEEN(SEL START_DATE FROM t_dates)  AND (SEL END_DATE FROM t_dates)
	   )WITH DATA ON COMMIT PRESERVE ROWS
      ;
    commit;
    ) by teradata;
  ;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 20:25:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910912#M359202</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T20:25:28Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910914#M359203</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I am allowed to create only&amp;nbsp;volatile&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That will make it harder to work with Teradata, unless things have changed in the past 5 years.&lt;/P&gt;
&lt;P&gt;We used to create small permanent individual or team databases for users so that they could store things temporarily.&lt;/P&gt;
&lt;P&gt;It was especially important when needing to upload some data into Teradata so it could be used to drive the Teradata queries.&amp;nbsp; For example to upload a set of IDS to use to subset from the large database. With a permanent table you could use BULKLOAD (fastload?) feature and so jobs would run much faster than when trying to copy the same amount of data into a volatile table.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 20:32:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910914#M359203</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-01-08T20:32:35Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910915#M359204</link>
      <description>&lt;P&gt;Can you please show the code and also how can I verify that the two volatile tables were created?&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 20:45:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910915#M359204</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T20:45:56Z</dc:date>
    </item>
    <item>
      <title>Re: Create Violate Tera table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910916#M359205</link>
      <description>&lt;P&gt;This code work with no warning&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options msglevel=i sastrace=',,,d' sastraceloc=saslog nostsuffix;
proc sql noprint;
  select CAT("'",put(max_process_date,date9.),"'d") into :max_process_date trimmed
  from
  (
    select max(process_date) as max_process_date
    from teradata.V797_PROCESS_DATE
  )
  ;
quit;
%put &amp;amp;max_process_date;/***'07JAN2024'd***/

proc sql;
  create table want as
  select *
  from teradata.VBM5732_AGR_DELAYED_PAYMENTS
  where AS52_TAR_DHIA between "01jan2024"d and &amp;amp;max_process_date.
  ;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Jan 2024 20:53:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910916#M359205</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2024-01-08T20:53:32Z</dc:date>
    </item>
    <item>
      <title>Re: Create Volatile Teradata table from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910920#M359208</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have you considered using CTE(s) instead of Volatile Tables in Teradata?&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;A href="https://support.teradata.com/community?id=community_question&amp;amp;sys_id=c258c3671b97fb00682ca8233a4bcba2" target="_blank"&gt;https://support.teradata.com/community?id=community_question&amp;amp;sys_id=c258c3671b97fb00682ca8233a4bcba2&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;A href="https://support.teradata.com/community?id=community_question&amp;amp;sys_id=45d68bef1b57fb00682ca8233a4bcb55" target="_blank"&gt;https://support.teradata.com/community?id=community_question&amp;amp;sys_id=45d68bef1b57fb00682ca8233a4bcb55&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you only want to derive subset of data based on information held in another derived table/query, CTE might be a better option!? The above two links might provide you with some insight.&lt;/P&gt;
&lt;P&gt;Disclaimer: I have used CTE(s) before with Snowflake but not Teradata.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps,&lt;/P&gt;
&lt;P&gt;Ahmed&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 21:13:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-Volatile-Teradata-table-from-SAS/m-p/910920#M359208</guid>
      <dc:creator>AhmedAl_Attar</dc:creator>
      <dc:date>2024-01-08T21:13:54Z</dc:date>
    </item>
  </channel>
</rss>

