<?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: calculation based on conversion in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565278#M158687</link>
    <description>&lt;P&gt;First thing, you need to run your example data sets and look closely at the dates generated, especially for end_date.&lt;/P&gt;
&lt;P&gt;Second your rate as shown does not produce the values you indicate as wanted because it is 100 times to large to use as is.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way:&lt;/P&gt;
&lt;PRE&gt;data Table1;
  input product $ start_date :date7. end_date:date7. Price;
 format start_date end_date date9.;
  datalines;
p1 01Jan17 18Jan18 15
p1 19Jan18 15Jul18 30
p1 16Jul18 31Mar19 24
p2 08Jan17 31Dec17 17
p2 01Jan18 15Mar18 19
p2 26Jul18 31Mar19 18
;

data table2;
input conversion_date :date7. rate;
format conversion_date date9.;
datalines;
01Jan17 110
15Jul17 96
06Mar18 104
;

proc sql;
   create table want as 
   select a.*,( a.price*(b.rate/100)) as Newprice
   from table1 as a, table2 as b 
   where  a.start_date le b.conversion_date le a. end_date
   ;
quit;&lt;/PRE&gt;</description>
    <pubDate>Tue, 11 Jun 2019 14:47:10 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2019-06-11T14:47:10Z</dc:date>
    <item>
      <title>calculation based on conversion</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565198#M158653</link>
      <description>&lt;P&gt;I have a table 1. It tells price for a product for a given date range.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;product&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;01-Jan-17&lt;/TD&gt;&lt;TD&gt;18-Jan-18&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;19-Jan-18&lt;/TD&gt;&lt;TD&gt;15-Jul-18&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;16-Jul-18&lt;/TD&gt;&lt;TD&gt;31-Mar-19&lt;/TD&gt;&lt;TD&gt;24&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;08-Jan-17&lt;/TD&gt;&lt;TD&gt;31-Dec-17&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;01-Jan-18&lt;/TD&gt;&lt;TD&gt;15-Mar-18&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;26-Jul-18&lt;/TD&gt;&lt;TD&gt;31-Mar-19&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Table1;
  input product $ start_date :date7. end_date:date7. Price;
 format start_date end_date date9.;
  datalines;
p1 01Jan17 18Jan18 15
p1 19Jan18 15Jul18 30
p1 16Jul18 31Mar19 24
p2 08Jan17 31Dec17 17
p2 01Jan18 15Mar18 19
p2 26Jul18 31Mar19 18
;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I have table 2 which actually tell me at which date pound to euro converation happen in system and what is the rate. So in first case from 1-jan-2017 to 14-jul-2017 pound to euro conversion rate is 110%. if Pound price is 100 pound then in Euro it will be 110.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Conversion_date&lt;/TD&gt;&lt;TD&gt;rate&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;01-Jan-17&lt;/TD&gt;&lt;TD&gt;110%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15-Jul-17&lt;/TD&gt;&lt;TD&gt;96%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;06-Mar-18&lt;/TD&gt;&lt;TD&gt;104%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So in the case 1 case of table one where price for product p1 from 01-Jan-2017 to 18-Jan-2018 is 15Pound and if we want to convert this in euro then as we see conversion rate from 01-Jan-2017 is 110% so in the output new price from 01-Jan-2017 to till the date conversion rate does not change new price is actual price*110% but when conversion rate changed on&amp;nbsp; 15-July-2017 then new price is actual price*96%. similary onwards happen for other records also. New price comes based on actual price* conversion rate at that period of time and conversion start date is conversion_date in table 2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data table2;
input conversion_date date9. rate;
format conversion_date date9.;
datalines;
01-Jan-17 110
15-Jul-17 96
06-Mar-18 104
;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I want following output&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;product&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;TD&gt;new_price&lt;/TD&gt;&lt;TD&gt;calculation to understand,it is not required in tables&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;01-Jan-17&lt;/TD&gt;&lt;TD&gt;14-Jul-17&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;16.5&lt;/TD&gt;&lt;TD&gt;15*110%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;15-Jul-17&lt;/TD&gt;&lt;TD&gt;18-Jan-18&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;14.4&lt;/TD&gt;&lt;TD&gt;15*96%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;19-Jan-18&lt;/TD&gt;&lt;TD&gt;05-Mar-18&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;28.8&lt;/TD&gt;&lt;TD&gt;30*96%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;06-Mar-18&lt;/TD&gt;&lt;TD&gt;15-Jul-18&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;31.2&lt;/TD&gt;&lt;TD&gt;30*104%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;16-Jul-18&lt;/TD&gt;&lt;TD&gt;31-Mar-19&lt;/TD&gt;&lt;TD&gt;24&lt;/TD&gt;&lt;TD&gt;24.96&lt;/TD&gt;&lt;TD&gt;30*104%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;08-Jan-17&lt;/TD&gt;&lt;TD&gt;14-Jul-17&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;18.7&lt;/TD&gt;&lt;TD&gt;17*110%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;15-Jul-17&lt;/TD&gt;&lt;TD&gt;31-Dec-17&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;16.32&lt;/TD&gt;&lt;TD&gt;17*96%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;01-Jan-18&lt;/TD&gt;&lt;TD&gt;05-Mar-18&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;18.24&lt;/TD&gt;&lt;TD&gt;19*96%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;06-Mar-18&lt;/TD&gt;&lt;TD&gt;15-Mar-18&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;19.76&lt;/TD&gt;&lt;TD&gt;19*104%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;26-Jul-18&lt;/TD&gt;&lt;TD&gt;31-Mar-19&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;18.72&lt;/TD&gt;&lt;TD&gt;18*104%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please help, how can I calculate this...&lt;/P&gt;</description>
      <pubDate>Wed, 12 Jun 2019 08:40:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565198#M158653</guid>
      <dc:creator>Srigyan</dc:creator>
      <dc:date>2019-06-12T08:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: calculation based on conversion</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565278#M158687</link>
      <description>&lt;P&gt;First thing, you need to run your example data sets and look closely at the dates generated, especially for end_date.&lt;/P&gt;
&lt;P&gt;Second your rate as shown does not produce the values you indicate as wanted because it is 100 times to large to use as is.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way:&lt;/P&gt;
&lt;PRE&gt;data Table1;
  input product $ start_date :date7. end_date:date7. Price;
 format start_date end_date date9.;
  datalines;
p1 01Jan17 18Jan18 15
p1 19Jan18 15Jul18 30
p1 16Jul18 31Mar19 24
p2 08Jan17 31Dec17 17
p2 01Jan18 15Mar18 19
p2 26Jul18 31Mar19 18
;

data table2;
input conversion_date :date7. rate;
format conversion_date date9.;
datalines;
01Jan17 110
15Jul17 96
06Mar18 104
;

proc sql;
   create table want as 
   select a.*,( a.price*(b.rate/100)) as Newprice
   from table1 as a, table2 as b 
   where  a.start_date le b.conversion_date le a. end_date
   ;
quit;&lt;/PRE&gt;</description>
      <pubDate>Tue, 11 Jun 2019 14:47:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565278#M158687</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-06-11T14:47:10Z</dc:date>
    </item>
    <item>
      <title>Re: calculation based on conversion</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565297#M158695</link>
      <description>&lt;P&gt;Apology for inconvinence.I will take care of this in future.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Though this code is not giving desired result.Date range is not changing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;product&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;TD&gt;Newprice&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;01-Jan-17&lt;/TD&gt;&lt;TD&gt;18-Jan-18&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;16.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;01-Jan-17&lt;/TD&gt;&lt;TD&gt;18-Jan-18&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;14.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;08-Jan-17&lt;/TD&gt;&lt;TD&gt;31-Dec-17&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;16.32&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p1&lt;/TD&gt;&lt;TD&gt;19-Jan-18&lt;/TD&gt;&lt;TD&gt;15-Jul-18&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;31.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;p2&lt;/TD&gt;&lt;TD&gt;01-Jan-18&lt;/TD&gt;&lt;TD&gt;15-Mar-18&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;19.76&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 11 Jun 2019 15:36:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565297#M158695</guid>
      <dc:creator>Srigyan</dc:creator>
      <dc:date>2019-06-11T15:36:40Z</dc:date>
    </item>
    <item>
      <title>Re: calculation based on conversion</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565336#M158708</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/200312"&gt;@Srigyan&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Apology for inconvinence.I will take care of this in future.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Though this code is not giving desired result.Date range is not changing.&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You will have to provide a RULE for how the dates change. It is not obvious from your input.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2019 17:45:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565336#M158708</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-06-11T17:45:37Z</dc:date>
    </item>
    <item>
      <title>Re: calculation based on conversion</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565486#M158781</link>
      <description>&lt;P&gt;Post edited with explanation, Please help...&lt;/P&gt;</description>
      <pubDate>Wed, 12 Jun 2019 08:40:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculation-based-on-conversion/m-p/565486#M158781</guid>
      <dc:creator>Srigyan</dc:creator>
      <dc:date>2019-06-12T08:40:53Z</dc:date>
    </item>
  </channel>
</rss>

