0

我在从存储过程中获取 MAX DATE 时遇到问题。

基本上,我有一个带有捕获日期的汇率列表,这些汇率每天捕获并存储在一个表中,我希望返回最新值。

这是我正在处理的代码..

select  
distinct t.source_currency_code, t.target_currency_code,
'(' + t.source_currency_code + ') '  + s.currency_name as source_currency_name, 
'(' + t.target_currency_code + ') '  + x.currency_name as target_currency_name,
t.converted_amount as buy_rate,
t.date_loaded as date_loaded

from texchange_rate t, tcurrency s, tcurrency x

where 
s.currency_code = t.source_currency_code and 
x.currency_code = t.target_currency_code

order by  t.source_currency_code

我的想法是 MAX(.t.date_loaded by currency_code) 但这不起作用......

任何帮助表示赞赏!

4

2 回答 2

2

我认为您需要将来源和目标货币作为元素来查找您的最新购买率。

你能接受吗?

 SELECT
t.source_currency_code, t.target_currency_code,
'(' + t.source_currency_code + ') '  + s.currency_name as source_currency_name, 
'(' + t.target_currency_code + ') '  + x.currency_name as target_currency_name,
t.converted_amount as buy_rate,
t.date_loaded as date_loaded
FROM 
texchange_rate t
INNER JOIN tcurrency s
ON t.source_currency_code = s.currency_code
INNER JOIN tcurrency x
ON t.target_currency_code = x.currency_code
WHERE t.date_loaded in 
      (
          SELECT max(date_loaded) from texchange_rate tt
          where t.source_currency_code = tt.source_currency_code
          and t.target_currency_code = tt.target_currency_code
      )
order by date_loaded desc

更新 删除不同的货币代码和分组,我认为按 date_loaded 的顺序会给你最新的值,不确定这是否是你想要的。

于 2012-02-23T12:22:26.827 回答
1

尝试:

select * from 
(select t.source_currency_code, 
        t.target_currency_code,
        '('+t.source_currency_code+') '  + s.currency_name as source_currency_name, 
        '('+t.target_currency_code+') '  + x.currency_name as target_currency_name,
        t.converted_amount as buy_rate,
        t.date_loaded as date_loaded,
        rank() over (partition by t.source_currency_code, 
                                  t.target_currency_code 
                     order by t.date_loaded desc) rn
 from texchange_rate t
 join tcurrency s on s.currency_code = t.source_currency_code 
 join tcurrency x on x.currency_code = t.target_currency_code) v
where rn = 1
order by source_currency_code, target_currency_code
于 2012-02-23T12:57:03.507 回答