Office中国论坛/Access中国论坛

标题: 查询每个月份的汇率,急!! [打印本页]

作者: yanghuap    时间: 2012-7-5 09:58
标题: 查询每个月份的汇率,急!!
本帖最后由 yanghuap 于 2012-7-5 16:42 编辑


dbo_CURRRATE_MSTR               
币种        起始月份        汇率
RMB        200901        1.136
RMB        201001        1.12
RMB        201107        1.17

如上表,每次汇率有变动的时候,我们都在汇率表中做一个记录,记录下每次汇率的变动情况
如今想做一个汇率查询表,可以显示从起始月份开始到最后一个汇率之间的所有月份的汇率,如下表:
dbo_CURRRATE_MSTR               
币种        月份        汇率
RMB        200901        1.136
RMB        200902        1.136
RMB        200903        1.136
RMB        200904        1.136
RMB        200905        1.136
RMB        200906        1.136
RMB        200907        1.136
RMB        200908        1.136
RMB        200909        1.136
RMB        200910        1.136
RMB        200911        1.136
RMB        200912        1.136
RMB        201101        1.12
RMB        201102        1.12
RMB        201103        1.12
RMB        201104        1.12
RMB        201105        1.12
RMB        201106        1.12
RMB        201107        1.17
这个查询应该怎么做,请高手指点,谢谢!


[attach]49581[/attach]

请高手帮忙完成附件查询中的汇率,谢谢!
作者: Henry D. Sy    时间: 2012-7-5 10:12
这个应该是很简单的参数查询。
你把例子传上来
作者: Henry D. Sy    时间: 2012-7-5 10:14
select * from dbo_CURRRATE_MSTR where 月份>=[请输入起始月份] And 月份<=[请输入终止月份]
order by 月份
作者: jj7769640    时间: 2012-7-5 14:15
这个帖子不错,大家快来顶起来!
作者: yanghuap    时间: 2012-7-5 16:15
jj7769640 发表于 2012-7-5 14:15
这个帖子不错,大家快来顶起来!

我试下,很多谢你们的帮助
作者: yanghuap    时间: 2012-7-5 16:37
[attach]49580[/attach]

已上传档案,请高手帮我完成附件中查询的汇率.
作者: roych    时间: 2012-7-5 20:13
莫非是这样?
[attach]49584[/attach]
作者: yanghuap    时间: 2012-7-5 23:28
不是这样的,我是想取到当月的汇率,比喻2009年1月份的RMB的汇率为1.136,那么sheet1为出入库明细记录,2009年1月份的出入库记录中,币种为RMB的汇率就取1.136,用查询1表示出来。
作者: yanghuap    时间: 2012-7-5 23:28
roych 发表于 2012-7-5 20:13
莫非是这样?

不是这样的,我是想取到当月的汇率,比喻2009年1月份的RMB的汇率为1.136,那么sheet1为出入库明细记录,2009年1月份的出入库记录中,币种为RMB的汇率就取1.136,用查询1表示出来。
作者: roych    时间: 2012-7-6 01:44
那大概是这样了:
[attach]49594[/attach]
实现原理:
1、将汇率表中的最后日期提取出来,例如2012年7月,最后1天为2012年7月31日。
2、将交易日期所对应的最后日期提取出来,例如2012年7月6日,对应的最后1天为2012年7月31日。
3、将1和2的最后日期和币种提出来,进行内联接关联,得到的数据即为交易表中的汇率。
此外,用DLast方法也是可行的,不过个人觉得多做两个查询会更简单些,不必去写公式。
作者: yanghuap    时间: 2012-7-6 08:49
本帖最后由 yanghuap 于 2012-7-6 09:00 编辑
roych 发表于 2012-7-6 01:44
那大概是这样了:

实现原理:


如果两表中都有对应的月份可以像你这样做,但现在的问题是:
dbo_CURRRATE_MSTR               
币种        起始月份        汇率
RMB        200901        1.136
RMB        201001        1.12
RMB        201107        1.17
如上表,每次汇率有变动的时候,我们都在汇率表中做一个记录,记录下每次汇率的变动情况
汇率表中并非每个月都与SHEET1中出入库相对应的月份,那应该怎么办?比喻2011年07月的汇率至今未变,那么2011年7月份的汇率为1.17,2011年12月份的汇率也为1.172,但汇率表中只有201107所对的汇率为1.17,那么2011年7月到2012年6月份的汇率如何取得?
作者: roych    时间: 2012-7-6 19:24
yanghuap 发表于 2012-7-6 08:49
如果两表中都有对应的月份可以像你这样做,但现在的问题是:
dbo_CURRRATE_MSTR               
币种  ...

即便不变,仍需把每个月的汇率统计上去,否则只能用DLookup来处理。
作者: yanghuap    时间: 2012-7-6 23:37
roych 发表于 2012-7-6 19:24
即便不变,仍需把每个月的汇率统计上去,否则只能用DLookup来处理。

币种        起始月份        汇率
RMB        200901        1.136
RMB        201001        1.12
RMB        201107        1.17
我想做一个查询,它们之间相隔的月份的汇率也显示出来,例如第一行汇率与第二行汇率,从2009年1月份开始,到2010年1月份汇率才变动,那么2009年1月份到12月份的汇率全部显示为2009年1月份的汇率1.136,在其后的2010年1月到2011年6月,全部显示为2010年1月份的汇率1.12,从2011年7月份致今,汇率未有变动,那么2011年7月份至今的汇率显示为2011年7月份的汇率1.17,有没有办法可以做到这个查询?
作者: andymark    时间: 2012-7-7 14:20
是这样的结果吗

  1. SELECT Sheet1.*, (select Top 1 RATE from dbo_CURRRATE_MSTR  where  dbo_CURRRATE_MSTR.CURRCODE=sheet1.CURRCODE and dbo_CURRRATE_MSTR.CURRMONTH>=format(Sheet1.UPMISS_DATE,"YYYYMM") order by CURRMONTH  ) AS 汇率
  2. FROM Sheet1
复制代码

作者: purplerose    时间: 2015-8-15 21:54
ERP中有一个各国汇率表,要每月维护进去数据 供其它查询表取值




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3