我有一个具有以下结构的货币表,其中每种交易货币的汇率以参考货币(即欧元)维护,但不一定以其他货币为单位。
bcur|curr | effectivedt|Expressinbase|rate
EUR |SAR |01/04/2020 |1 |12.23
EUR |SAR |01/05/2020 |1 |12.27
EUR |SAR |01/06/2020 |1 |12.29
EUR |INR |01/04/2020 |1 |77.78
EUR |INR |01/05/2020 |1 |77.90
EUR |USD |01/04/2020 |1 |1.34
EUR |GBP |01/04/2020 |1 |23
EUR |GBP |01/05/2020 |1 |32
USD |SAR |01/04/2020 |1 |45
USD |SAR |01/05/2020 |1 |54
USD |GBP |01/04/2020 |2 |0.83
INR |SAR |01/04/2020 |1 |80
.
.
我正在为一些金额选择我的销售订单表,现在我需要根据销售订单表中的交易日期将交易货币金额转换为欧元、美元和印度卢比。
When transaction currency = the currency under consideration assign the amount accordingly
When transaction currency <> the currency then
if the relation exists is currency table.
If the rate is maintaied with Expressinbase = 1 then Amount in <curr> = Sales Order Amount / rate
If the rate is maintaied with Expressinbase = 2 then Amount in <curr> = Sales Order Amount * rate
If no direct relation is maintained (for USD or INR)
Amount in <USD or INR> = Amount in EUR/ rate of EUR to <USD or INR>
这对逻辑很有帮助,但我仍然坚持根据交易日期从货币表中仅获取 1 条记录