<?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: Simplify proc sql multiple joins in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936606#M368123</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/77163"&gt;@Oligolas&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;And align your code with this little tool&amp;nbsp;&lt;A href="https://sqlformat.org/" target="_blank" rel="noopener"&gt;https://sqlformat.org/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Unfortunately that formatting tool hides the continuation characters (commas for example) in split lines at the END of previous line instead of placing them at the BEGINNING of the next line where a human is more likely to SEE them.&amp;nbsp; it does not seem to include any option to fix that.&lt;/P&gt;</description>
    <pubDate>Mon, 22 Jul 2024 15:13:01 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2024-07-22T15:13:01Z</dc:date>
    <item>
      <title>Simplify proc sql multiple joins</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936495#M368098</link>
      <description>&lt;P&gt;&amp;nbsp;Can somebody help me to break this one big proc sql into multiple proc sql as we need to convert it into SAS DI and I am somehow stuck and not getting the correct result because of the subquery&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any help is really appreciated. Thanks in advance&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;PROC SQL&amp;nbsp; /* FULL QUERY in SAS LIB&amp;nbsp; agreement snapshot*/ ;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;CREATE TABLE im_rslts.CA_pr_betalen_basistabel_dly AS&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;SELECT distinct&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(datepart(ARS.D0_CRD_RPT_DT)) AS periode_eenh_id&amp;nbsp; &amp;nbsp;FORMAT=DATE9.&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; put(intnx('month', datepart(ARS.D0_CRD_RPT_DT), -1), yymmn6.) AS relatiecomplex&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARS.D0_CRD_RPT_DT AS boekdag&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARS.FM_ORIG_DEP_CLS_BOOK_BAL_AMT AS saldo label="DEP_CLS_BOOK_BAL_AMT without D/C conversion (-1)"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; substr(ARD.NK_AR_NBR, 9, 10) AS rekening_nr&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARD.HA_PD_CD AS product_type_cd&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (CASE&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.relation_type="O" THEN "CLP"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.relation_type="P" THEN "RGB"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS reftyp&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.relation_nr AS relnr&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; CATX(' ', REL.person_name, REL.prefix_name, REL.initials) AS relnaam&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.segment_cd AS segment_cd &amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.main_segment_group_cd AS main_segment_group_cd&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.grid_relation_nr AS grid_eenh_id&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.grid_segment_cdAS grid_cust_segm_code&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.gridsegm_eenh_id AS gridsegm_eenh_id&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.segm_eenh_id AS segm_eenh_id&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; input(substr(REL.managing_entity,1,5),5.) AS kantrnr&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; input(substr(REL.managing_entity,6,3),3.) AS relbehcd&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.econ_ultimate_grid_relation_nr AS grid_econ_ult_eenh_id&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARS1.FM_ORIG_DEP_CLS_BOOK_BAL_AMT AS startsaldo LABEL="saldo van vorige dag"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARS.FM_ORIG_DEP_CLS_BOOK_BAL_AMT AS eindsaldo LABEL="saldo van huidige dag"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (ARS.FM_ORIG_DEP_CLS_BOOK_BAL_AMT-COALESCE(ARS1.FM_ORIG_DEP_CLS_BOOK_BAL_AMT,0)) AS saldo_mutatie&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; (CASE&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN ARS1.FM_ORIG_DEP_CLS_BOOK_BAL_AMT NOT IN (. , 0)&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN (ARS.FM_ORIG_DEP_CLS_BOOK_BAL_AMT - ARS1.FM_ORIG_DEP_CLS_BOOK_BAL_AMT) / ARS1.FM_ORIG_DEP_CLS_BOOK_BAL_AMT * 100&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN ARS1.FM_ORIG_DEP_CLS_BOOK_BAL_AMT IN (. , 0)&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN 100 * SIGN(ARS.FM_ORIG_DEP_CLS_BOOK_BAL_AMT)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END)&amp;nbsp; AS percentage_saldo_wijziging&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; S1.relatie_cd AS relatie_cd&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; . AS afschrijving LABEL="TXN NOT PROMOTED"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; . AS bijschrijving LABEL="TXN NOT PROMOTED"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; . AS aanvullen LABEL="TXN NOT PROMOTED"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; . AS afromen LABEL="TXN NOT PROMOTED"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARD.HA_AHRD_OD_LMT_TP_CD AS limit_type_code&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; ARS.FM_AHRD_OD_LMT_AMT AS authorized_overdraft_limit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; S2.limit_type_description AS limit_type_description&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (CASE&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN input(RA.bban_nr,10.) IN (SELECT NRC.rekening_nr FROM dsa_p_nl.SAV_V_NRC_REKENING_20240401 NRC) THEN 'J' ELSE 'N'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS nrc_rekening_ind LABEL="sav_v_nrc"&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (ARS.FM_DEP_CLS_BOOK_BAL_AMT)*(ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND ="D") AS saldo_debet&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (ARS.FM_DEP_CLS_BOOK_BAL_AMT)*(ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND ="C") AS saldo_credit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.affiliate_entity_type AS affiliate_entity_type&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; REL.ma_segment_descr AS ma_segment_oms&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (CASE&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr =''&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'Onbekend'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Financial Institutions'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'FI'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Midsized Corporates'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'MC'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Particulier Personal Banking'&amp;nbsp; &amp;nbsp; THEN 'Perba'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Mass: Personal Banking'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'Perba'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Particulieren'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'Mass'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Mass'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'Mass'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Private Banking'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'Priba'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Product Clients'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'PC'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Retail - Other'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'RO'&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Retail Companies'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'SME'&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='SME'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'SME'&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Self-employed/Micro'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'SEM'&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Wholesale - Other'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THEN 'WO'&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHEN REL.ma_segment_descr ='Wholesale Corporates'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; THEN 'CC'&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ELSE ma_segment_descr&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS ma_segment_naam&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND = "C") AS aantal_credit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND = "D") AS aantal_debet&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (ARS.FM_AHRD_OD_LMT_AMT &amp;gt; 0)*(ARD.HA_AHRD_OD_LMT_TP_CD in ('D002', 'D010','D011','80','81')) AS aantal_limit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (CASE WHEN (ARD.HA_AHRD_OD_LMT_TP_CD in ('D002', 'D010','D011','80','81'))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN MIN(ARS.FM_AHRD_OD_LMT_AMT, ((ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND="D")*ARS.FM_DEP_CLS_BOOK_BAL_AMT))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ELSE 0&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS saldo_debet_in_limit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ,&amp;nbsp; (CASE WHEN (ARD.HA_AHRD_OD_LMT_TP_CD in ('D002', 'D010','D011','80','81'))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN&amp;nbsp; MAX(0, (((ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND="D")*ARS.FM_DEP_CLS_BOOK_BAL_AMT)-ARS.FM_AHRD_OD_LMT_AMT))&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ELSE (ARS.FM_DEP_CLS_BOOK_BAL_AMT)*(ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND ="D")&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS saldo_debet_out_limit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; , (CASE WHEN (ARD.HA_AHRD_OD_LMT_TP_CD in ('D002', 'D010','D011','80','81'))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN MIN(ARS.FM_AHRD_OD_LMT_AMT, ((ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND="D")*ARS.FM_DEP_CLS_BOOK_BAL_AMT))&amp;gt;0&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ELSE 0&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS aantal_debet_in_limit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; , (CASE WHEN (ARD.HA_AHRD_OD_LMT_TP_CD in ('D002', 'D010','D011','80','81'))&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN MAX(0, (((ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND="D")*ARS.FM_DEP_CLS_BOOK_BAL_AMT)-ARS.FM_AHRD_OD_LMT_AMT))&amp;gt;0&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ELSE 1&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS aantal_debet_out_limit&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; , (CASE WHEN (ARD.HA_AHRD_OD_LMT_TP_CD in ('D002', 'D010','D011','80','81'))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; THEN ARS.FM_AHRD_OD_LMT_AMT-MIN(ARS.FM_AHRD_OD_LMT_AMT, ((ARS.DD_DEP_CLS_BOOK_BAL_DB_CR_IND="D")*ARS.FM_DEP_CLS_BOOK_BAL_AMT))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ELSE ARS.FM_AHRD_OD_LMT_AMT&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; END) AS dispositie_ruimte&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;FROM cl_exg.cl_exg_fp_ar_snpst_dly&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ARS&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp;INNER JOIN cl_exg.cl_exg_d7_ar&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ARD&amp;nbsp; &amp;nbsp; &amp;nbsp; ON ARS.d7_ar_id&amp;nbsp; &amp;nbsp; = ARD.s7_ar_id&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp;LEFT JOIN (SELECT distinct ARS1.*, ARD1.s1_ar_id&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; FROM cl_exg.cl_exg_fp_ar_snpst_dly ARS1&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; INNER JOIN cl_exg.cl_exg_d7_ar&amp;nbsp; &amp;nbsp; &amp;nbsp;ARD1&amp;nbsp; &amp;nbsp; &amp;nbsp; ON (ARS1.d7_ar_id&amp;nbsp; &amp;nbsp; = ARD1.s7_ar_id)&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; WHERE ((ARS1.d0_crd_rpt_dt = '31MAR2024:00:00:00'dt) AND (ARS1.d0_crd_rpt_dt between ARD1.TA_VLD_FROM_DT and ARD1.TA_VLD_TO_DT))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; ) ARS1 ON (ARD.s1_AR_ID = ARS1.s1_AR_ID)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; LEFT JOIN dsa22.RELATION_AGREEMENT_202403&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ON ((ARD.NK_AR_NBR = RA.iban_nr)&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND (RA.RELATION_NR = RA.main_relation_nr) AND (RA.mdm_product_category_cd=1))&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; LEFT JOIN dsa22.RELATION_202403&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; REL&amp;nbsp; &amp;nbsp; &amp;nbsp; ON (RA.relation_nr = REL.relation_nr)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; LEFT JOIN dsa_p_nl.stuur_pay_relatie_cd_202404&amp;nbsp; S1 &amp;nbsp; &amp;nbsp; &amp;nbsp;ON&amp;nbsp; (input(RA.bban_nr,10.) = S1.rekening_nr)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt; LEFT JOIN dsa_p_nl.STUUR_LIMIT_TYPE_CODE_202404&amp;nbsp; S2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ON ARD.HA_AHRD_OD_LMT_TP_CD = s2.limit_type_code&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;WHERE&amp;nbsp; ARS.d0_crd_rpt_dt = '01APR2024:00:00:00'dt&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;AND&amp;nbsp; &amp;nbsp;ARD.HA_PD_GRP_CD = 'CRN_AC'&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;AND&amp;nbsp; &amp;nbsp;ARD.HA_PD_CD NOT IN ('4910', '4911', '4300') /*EXCLUDE FCA*/&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;/*AND&amp;nbsp; &amp;nbsp;ARS.D7_AR_ID = 1030000021058960*/&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;/*GROUP BY TXS.D0_CRD_RPT_DT, TXS.D7_AR_ID, TXS.D7_PD_ID, TXS.D7_TXN_CCY_ID*/&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;QUIT;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Sat, 20 Jul 2024 16:56:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936495#M368098</guid>
      <dc:creator>yashpande</dc:creator>
      <dc:date>2024-07-20T16:56:59Z</dc:date>
    </item>
    <item>
      <title>Re: Simplify proc sql multiple joins</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936497#M368100</link>
      <description>&lt;P&gt;Why do you need to change it?&amp;nbsp; Does it not work as it is?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What did you try? In what way did it not work?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How do you want to change it? Do you mean you want to do the combination in multiple steps?&lt;/P&gt;
&lt;P&gt;I would start by taking the subquery and building that as a data step or view.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;(
SELECT distinct ARS1.*, ARD1.s1_ar_id
FROM cl_exg.cl_exg_fp_ar_snpst_dly ARS1 
  INNER JOIN cl_exg.cl_exg_d7_ar ARD1
    ON  (ARS1.d7_ar_id    = ARD1.s7_ar_id) 
WHERE ((ARS1.d0_crd_rpt_dt = '31MAR2024:00:00:00'dt)
   AND (ARS1.d0_crd_rpt_dt between ARD1.TA_VLD_FROM_DT and ARD1.TA_VLD_TO_DT)&lt;BR /&gt;      )
) ARS1 &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And then replacing that subquery in the larger query with the name of the view or dataset that you created.&lt;/P&gt;</description>
      <pubDate>Sat, 20 Jul 2024 17:43:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936497#M368100</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-07-20T17:43:46Z</dc:date>
    </item>
    <item>
      <title>Re: Simplify proc sql multiple joins</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936506#M368101</link>
      <description>I need to build a SAS DI job using transformation for that . When I am combining all the tables in one SQL somehow the results are not matching and hence I need to make separate proc SQL for the same</description>
      <pubDate>Sat, 20 Jul 2024 18:48:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936506#M368101</guid>
      <dc:creator>yashpande</dc:creator>
      <dc:date>2024-07-20T18:48:37Z</dc:date>
    </item>
    <item>
      <title>Re: Simplify proc sql multiple joins</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936509#M368104</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/23883"&gt;@yashpande&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;I need to build a SAS DI job using transformation for that . When I am combining all the tables in one SQL somehow the results are not matching and hence I need to make separate proc SQL for the same&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Not sure what DI allows.&amp;nbsp; But if the query works outside of DI but does not work in DI then the issue is that the data is different.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why do you need to rebuild the logic in DI?&amp;nbsp; To do that you should probably start with the business description of what you want to do and build that using DI features. Rather than trying to reverse engineer someone else's solution to the problem created using only SQL.&lt;/P&gt;</description>
      <pubDate>Sat, 20 Jul 2024 19:41:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936509#M368104</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-07-20T19:41:59Z</dc:date>
    </item>
    <item>
      <title>Re: Simplify proc sql multiple joins</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936558#M368114</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If this is wanted, I'd suggest to perform the left joins in SQL and the result modifications in a dataset.&lt;/P&gt;
&lt;P&gt;Avoid all the cases and catx in the SQL (allthough it's fine to do it like this)&lt;/P&gt;
&lt;P&gt;That's not too much work and it will clarify your code&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And align your code with this little tool&amp;nbsp;&lt;A href="https://sqlformat.org/" target="_blank" rel="noopener"&gt;https://sqlformat.org/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jul 2024 09:48:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936558#M368114</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2024-07-22T09:48:44Z</dc:date>
    </item>
    <item>
      <title>Re: Simplify proc sql multiple joins</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936606#M368123</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/77163"&gt;@Oligolas&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;And align your code with this little tool&amp;nbsp;&lt;A href="https://sqlformat.org/" target="_blank" rel="noopener"&gt;https://sqlformat.org/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Unfortunately that formatting tool hides the continuation characters (commas for example) in split lines at the END of previous line instead of placing them at the BEGINNING of the next line where a human is more likely to SEE them.&amp;nbsp; it does not seem to include any option to fix that.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jul 2024 15:13:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Simplify-proc-sql-multiple-joins/m-p/936606#M368123</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-07-22T15:13:01Z</dc:date>
    </item>
  </channel>
</rss>

