gpt4 book ai didi

mysql - 在另一个表中按日期选择最后一个值

转载 作者:行者123 更新时间:2023-11-30 00:35:04 27 4
gpt4 key购买 nike

我正在尝试从年度数据表 (Companies_Annual) 中选择数据,并根据会计年度结束时的现行汇率将这些值转换为另一种货币,该汇率存储在第二个表中包含每日汇率 (FX_daily)。然而,一个复杂的因素是,对于我需要从 Companies_Annual 中进行选择的某些历史会计年度结束,汇率值可能不可用,而 future 的年度数据将需要按照最后的现行汇率进行转换。

我的问题是,如何从 FX_daily 表中选择与 中的 Year 相关的最后一个可用的 fx_rate CA 表并应用它来转换 CA 表中的 Value 字段?我尝试在 FX.Date 上加入 CA.year 并使用 MAX() 函数获取最后的 fx_rate 为每个 CA.Year,但我的语法显然是错误的。谁能帮我这个?

表结构大致如下:

CA table
Year ticker Value
2012-12-31 xyz 2,000
2013-12-31 xyz 2,100
2014-12-31 xyz 2,200
2015-12-31 xyz 2,300
2016-12-31 xyz 2,400

FX_daily table
Date fx_code fx_rate
2000-12-25 £:$ 1.45
2000-05-26 £:$ 1.45
2000-05-27 £:$ 1.45
…… etc
2014-02-04 £:$ 1.67
2014-02-05 £:$ 1.65
2014-02-06 £:$ 1.67
2014-02-07 £:$ 1.66

我尝试结合简单的选择来从 CA 表中获取年份数据

SELECT ca.year
FROM companies_annual ca
WHERE ca.ticker ='xyz'
AND ca.year >=2013-12-31
ORDER BY ca.year LIMIT 4

这给了我年终日期 OK

year
2012-12-31
2013-12-31
2014-12-31
2015-12-31

并使用Max()函数获取最后的fx_rate日期

SELECT max(date),fx_code,fx_rate 
FROM fx_daily
WHERE date <='2016-12-31'
AND fx_code ='$:£'
ORDER BY date LIMIT 6

这给了我最后的利率,但只有一年

max(date)   fx_code   fx_rate
2014-03-05 $:£ 1.618

最佳答案

GROUP BY 添加到对 fx_codefx_rate 值的查询中。

示例:

SELECT 
max(date) mx_date,fx_code,fx_rate
FROM fx_daily
WHERE
date <='2016-12-31' AND fx_code ='$:£'
GROUP BY
fx_code, fx_rate
ORDER BY date LIMIT 6

关于mysql - 在另一个表中按日期选择最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22244766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com