【发布时间】:2015-11-20 16:53:57
【问题描述】:
我们目前遇到的问题是,一些用户的费率没有正确输入,我的任务是找出哪些输入不正确,但不幸的是我有点卡住了。
要求如下;
- 如果用户只有英镑计费率,则什么也不做
- 如果用户有英镑 + 美元的计费率,则; GBP 必须 = USD / 1.55 否则为 FALSE
我是这样开始的:
我们有一个名为 TIMERATE 的表,其中输入了用户的收费率,每次收费率变化时都会添加一个新行。用户可以有一种以上货币的收费率。
这是表中单个用户的数据的一部分;
tkinit tkeffdate tkrt01 tkrtcur
LAU 01/02/2014 170 GBP
LAU 01/08/2014 260 GBP
LAU 01/12/2014 130 GBP
LAU 01/08/2014 260 USD
LAU 01/12/2014 210 USD
LAU 01/02/2015 260 USD
要了解每种货币的最新汇率:
SELECT
TKINIT as Timekeeper,
MAX (tkeffdate) as MaxEffectiveDate,
tkrtcur as Currency,
Cast (NULL as decimal (16,2)) as Rate
INTO
#LatestRate
FROM
TIMERATE
GROUP BY
TKINIT, tkrtcur
ORDER BY
TKINIT
然后我更新了临时表中的费率
update
#LatestRate
Set
Rate = tkrt01
from
#LatestRate
JOIN
Timerate on TKINIT = Timekeeper
and tkrtcur = Currency
and tkeffdate = MaxEffectiveDate
所以我现在有每个用户的每种货币的最新汇率,但我不知道如何操纵数据以满足要求
有人有什么想法吗?我是不是走错了路?
【问题讨论】:
标签: sql tsql compare currency rate