<?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: Pulling data from 3 different data sets with 2 conditions in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903569#M357022</link>
    <description>&lt;P&gt;To stack data you need a UNION and not a JOIN. Just based on the screenshot of your Have and Want data below code would do.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
  create table final_od_limit_1 (encoding=any) as

  select bp_id, fe_gen_cust_no, take_up_date_wa
  from mvp1

  union corr all
  select bp_id, fe_gen_cust_no, take_up_date_wa
  from lmt.final_pdg2
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You're also talking about a 3rd table which also gets used in your code - but this table is missing in the screenshot. If above code doesn't provide you sufficient guidance how to proceed then please share some representative sample data for all tables via SAS datastep code that creates this sample data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 16 Nov 2023 21:53:27 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2023-11-16T21:53:27Z</dc:date>
    <item>
      <title>Pulling data from 3 different data sets with 2 conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903558#M357018</link>
      <description>&lt;P&gt;Good day expects.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have 3 data sets&amp;nbsp;&lt;BR /&gt;MVP1 Contains clients from MVP1&lt;BR /&gt;MVP2 Contains&amp;nbsp;clients from MVP2&lt;BR /&gt;Final_pdg2 contains take_up_date&amp;nbsp; date of a product&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;how can i structure my code to produce the expected results as illustrated below&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rixile106_0-1700165592579.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/89945i712CA06806B9A6DD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Rixile106_0-1700165592579.png" alt="Rixile106_0-1700165592579.png" /&gt;&lt;/span&gt;&lt;PRE&gt;&lt;CODE class=""&gt;PROC SQL;
CREATE TABLE FINAL_OD_LIMIT_1 (ENCODING=ANY) AS
SELECT A.BP_ID, B.FE_GEN_CUST_NO, B.TAKE_UP_DATE_WA
FROM MVP1 A
LEFT JOIN LMT.Final_pdg2 B ON A.BP_ID = B.FE_GEN_CUST_NO
WHERE B.TAKE_UP_DATE_WA BETWEEN 20230510 AND &amp;amp;YDAY.
AND  (
   SELECT C.BP_ID
   FROM FIN.MVP2 C
   LEFT JOIN Final_pdg2 D ON C.BP_ID = D.FE_GEN_CUST_NO
   WHERE D.TAKE_UP_DATE_WA BETWEEN 20230828 AND &amp;amp;YDAY.
);
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/LI-SPOILER&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="Rixile106_1-1700165752211.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/89946iFE61F2A3356F241C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Rixile106_1-1700165752211.png" alt="Rixile106_1-1700165752211.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Nov 2023 20:16:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903558#M357018</guid>
      <dc:creator>Rixile106</dc:creator>
      <dc:date>2023-11-16T20:16:26Z</dc:date>
    </item>
    <item>
      <title>Re: Pulling data from 3 different data sets with 2 conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903569#M357022</link>
      <description>&lt;P&gt;To stack data you need a UNION and not a JOIN. Just based on the screenshot of your Have and Want data below code would do.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
  create table final_od_limit_1 (encoding=any) as

  select bp_id, fe_gen_cust_no, take_up_date_wa
  from mvp1

  union corr all
  select bp_id, fe_gen_cust_no, take_up_date_wa
  from lmt.final_pdg2
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You're also talking about a 3rd table which also gets used in your code - but this table is missing in the screenshot. If above code doesn't provide you sufficient guidance how to proceed then please share some representative sample data for all tables via SAS datastep code that creates this sample data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Nov 2023 21:53:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903569#M357022</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2023-11-16T21:53:27Z</dc:date>
    </item>
    <item>
      <title>Re: Pulling data from 3 different data sets with 2 conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903603#M357039</link>
      <description>&lt;P&gt;Table 1 consist of&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;MVP1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;BP_ID&lt;/TD&gt;&lt;TD&gt;Buckets&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;134&lt;/TD&gt;&lt;TD&gt;Mvp1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;587&lt;/TD&gt;&lt;TD&gt;Mvp1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;520&lt;/TD&gt;&lt;TD&gt;Mvp1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Table 2 consist of&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;MVP2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;BP_ID&lt;/TD&gt;&lt;TD&gt;Buckets&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;Mvp2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;Mvp2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;TD&gt;Mvp2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table 3 consist of&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;FE_GEN_CUST_NO&lt;/TD&gt;&lt;TD&gt;TAKE_UP_DATE_WA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;134&lt;/TD&gt;&lt;TD&gt;20230510&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;587&lt;/TD&gt;&lt;TD&gt;20230511&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;520&lt;/TD&gt;&lt;TD&gt;20230512&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;20230828&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;20230829&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;TD&gt;20230830&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;115&lt;/TD&gt;&lt;TD&gt;20230829&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2088&lt;/TD&gt;&lt;TD&gt;20230830&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;134&lt;/TD&gt;&lt;TD&gt;20230410&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;587&lt;/TD&gt;&lt;TD&gt;20230411&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;520&lt;/TD&gt;&lt;TD&gt;20230412&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;20230415&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;2023020&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;TD&gt;20230211&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;115&lt;/TD&gt;&lt;TD&gt;20230419&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2088&lt;/TD&gt;&lt;TD&gt;20230430&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Expected Results&lt;/TD&gt;&lt;TD&gt;BP_ID&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;FE_GEN_CUST_NO&lt;/TD&gt;&lt;TD&gt;TAKE_UP_DATE_WA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;134&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;134&lt;/TD&gt;&lt;TD&gt;20230510&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;587&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;587&lt;/TD&gt;&lt;TD&gt;20230511&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;520&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;520&lt;/TD&gt;&lt;TD&gt;20230512&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;20230828&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;20230829&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;TD&gt;20230830&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;From table 1 join table 3 and take_up_date _wa (date) is between 20230510 to date&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;	PROC SQL;
		CREATE TABLE WRK.FINAL_OD_LIMIT_1 (ENCODING= ANY) AS 
			SELECT 			BP_ID, FE_GEN_CUST_NO, TAKE_UP_DATE_WA
			      FROM FIN.MVPS A 
				     LEFT JOIN LMT.Final_pdg2  B ON A.BP_ID = B.FE_GEN_CUST_NO
					 	WHERE TAKE_UP_DATE_WA BETWEEN 20230510 AND &amp;amp;YDAY.

								UNION  ALL
								SELECT BP_ID, FE_GEN_CUST_NO, TAKE_UP_DATE_WA 
								FROM FIN.TO_MVP2_CLIENT C ON C.BP_ID = B.FE_GEN_CUST_NO 
									WHERE TAKE_UP_DATE_WA BETWEEN 20230828 AND &amp;amp;YDAY. ;
								;
									QUIT;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and&amp;nbsp;&lt;BR /&gt;from table 2&amp;nbsp; join table 3 and the take_up_date_wa (date) is between 20230828 to date&lt;/P&gt;</description>
      <pubDate>Fri, 17 Nov 2023 07:11:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903603#M357039</guid>
      <dc:creator>Rixile106</dc:creator>
      <dc:date>2023-11-17T07:11:39Z</dc:date>
    </item>
    <item>
      <title>Re: Pulling data from 3 different data sets with 2 conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903767#M357092</link>
      <description>&lt;P&gt;Please provide sample data via working SAS datasteps that create such data. Not only does this allow us to spend the time to actually answer your question, it also removes a lot of ambiguity how your data really looks like - for example if variable&amp;nbsp;TAKE_UP_DATE_WA just contains a number or an actual SAS Date value. Please amend below data steps if it doesn't create the data as you've actually got it.&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.table_1;
  infile datalines truncover;
  input BP_ID Buckets $;
  datalines;
134 Mvp1
587 Mvp1
520 Mvp1
;

data work.table_2;
  infile datalines truncover;
  input BP_ID Buckets $;
  datalines;
101 Mvp2
111 Mvp2
202 Mvp2
;

data work.table_3;
  infile datalines truncover;
  input FE_GEN_CUST_NO TAKE_UP_DATE_WA :yymmdd8.;
  format TAKE_UP_DATE_WA yymmddn8.;
  datalines;
134 20230510
587 20230511
520 20230512
101 20230828
111 20230829
202 20230830
115 20230829
2088 20230830
134 20230410
587 20230411
520 20230412
101 20230415
111 20230201
202 20230211
115 20230419
2088 20230430
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;In your code what's the value in macro variable&amp;nbsp;&amp;amp;YDAY.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And looking at your selection&lt;/P&gt;
&lt;PRE&gt;WHERE TAKE_UP_DATE_WA BETWEEN 20230828 AND &amp;amp;YDAY.&lt;/PRE&gt;
&lt;P&gt;Why are there dates prior to&amp;nbsp;20230828 in your desired data?&lt;/P&gt;
&lt;P&gt;If for a&amp;nbsp;&lt;SPAN&gt;FE_GEN_CUST_NO&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;value more than one row would be within the date range would you want to select both rows? ...or only the most recent date ...or some other selection criteria?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The following code shouldn't require much change once you clarify the required logic.&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
  select 
      l.FE_GEN_CUST_NO
    , r.BP_ID
    , l.TAKE_UP_DATE_WA
  from 
    work.table_3 l
    inner join 
    (
      select BP_ID 
      from work.table_1
      union all
      select BP_ID 
      from work.table_1
    ) r
  on 
    l.FE_GEN_CUST_NO=r.BP_ID
    and l.TAKE_UP_DATE_WA between &amp;amp;start_dt and &amp;amp;stop_dt
  ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1700307453483.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/89983i6E3B85A272A3FF7D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1700307453483.png" alt="Patrick_0-1700307453483.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In case the same BP_ID could exist in both table_1 and table_2 then you would need to remove the ALL keyword from the UNION so that the data gets deduped.&lt;/P&gt;</description>
      <pubDate>Sat, 18 Nov 2023 11:45:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Pulling-data-from-3-different-data-sets-with-2-conditions/m-p/903767#M357092</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2023-11-18T11:45:06Z</dc:date>
    </item>
  </channel>
</rss>

