请教如何取出各币种的最新汇率

hyperywj 2008-07-15 06:54:16
ID 币种 汇率 更新日期
1 人民币 1 2008-1-1
2 美元 7.5 2008-1-1
3 欧元 10 2008-3-1
4 美元 7 2008-5-1
5 美元 6.8 2008-7-7

要求根据“更新日期”取出所有币种的最新汇率,即达到这样的效果:

ID 币种 汇率 更新日期
1 人民币 1 2008-1-1
3 欧元 10 2008-3-1
5 美元 6.8 2008-7-7
...全文
682 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanjs 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhuawang 的回复:]
select * from tb a where not exists(select 1 from tb where 更新日期>a.更新日期 and 币种=a.币种)
[/Quote]
  • 打赏
  • 举报
回复
select * from tb a where 更新日期=(select max(更新日期) from tb where 币种=a.币种 group by 币种)
lff642 2008-07-15
  • 打赏
  • 举报
回复


--测试:

create table tb (ID int , 币种 varchar(10) , 汇率 numeric(5,3), 更新日期 datetime )

insert into tb select 1 , '人民币' , 1 , '2008-01-01'
insert into tb select 2 , '美元' , 7.5 , '2008-01-01'
insert into tb select 3 , '欧元' , 10 , '2008-03-01'
insert into tb select 4 , '美元' , 7 , '2008-05-01'
insert into tb select 5 , '美元' , 6.8, '2008-07-07'

select * from tb T where not exists(select 1 from tb where 币种 = T.币种 and 更新日期> T.更新日期 )

/*
ID 币种 汇率 更新日期
----------------------------
1 人民币 1.000 2008-01-01 00:00:00.000
3 欧元 10.000 2008-03-01 00:00:00.000
5 美元 6.800 2008-07-07 00:00:00.000
*/

drop table tb


hery2002 2008-07-15
  • 打赏
  • 举报
回复
SELECT * FROM tb A WHERE A.[更新日期] = (SELECT max(更新日期) FROM tb WHERE 币种=A.币种)
lgxyz 2008-07-15
  • 打赏
  • 举报
回复
SELECT * FROM TB A WHERE NOT EXISTS
(SELECT 1 FROM TB WHERE 更新日期>A.更新日期 AND 币种=A.币种)
zhuawang 2008-07-15
  • 打赏
  • 举报
回复
select * from tb a where not exists(select 1 from tb where 更新日期>a.更新日期 and 币种=a.币种)
hyperywj 2008-07-15
  • 打赏
  • 举报
回复
还有,如果表结构中没有主键的话,又该如何查询呢?比如表结构中没有ID这一列:

币种 汇率 更新日期
人民币 1 2008-1-1
美元 7.5 2008-1-1
欧元 10 2008-3-1
美元 7 2008-5-1
美元 6.8 2008-7-7
ydage 2008-07-15
  • 打赏
  • 举报
回复
--top实现
select * from tb s where id =
(select top 1 id from tb where 币种 = s.币种 order by 币种,更新日期 desc)
utpcb 2008-07-15
  • 打赏
  • 举报
回复
select * from tb a where 更新日期=(select max(更新日期) from tb where 币种=a.币种 group by 币种)
select * from tb a where not exists(select 1 from tb where 更新日期>a.更新日期 and 币种=a.币种)

都是的都可以的
DM平台,不仅仅是一个netcore后台开发框架,他也是一个企业级快速开发解决方案。只用拖拉和编写一些简单的JavaScript即可实现业务功能创建和复杂的逻辑关系,能让初学者更快的入门并投入到团队的项目开发中去。让开发者注重专注业务,其余有平台来封装技术细节,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。DM平台是作者和自己的开发团队结合了多年开发经验,以及各方面的应用案例,把多个开源框架的优势和特殊功能集中进行优中选优,进行了二次开发后,完成了一次全部重构,也纳入很多新的思想。不管是从开发者模式、底层架构、逻辑处理还是到用户界面,用户交互体验上都有了与众不同、独竖一帜的表现,集百家之长成自家之源。努力为大中小微企业打造全方位企业级快速开发解决方案。零代码开发是指开发简单功能模块时可一键生成无须代码,如果开发复杂模块只需学习DM平台的插件功能,书写JavaScript代码调用相关Api函数即可实现,对程序初学者可快速入门并参与项目开发。在表单设计、视图设计、审批流程等方面DM平台采用可视化操作,所见即所得;平台采用NetCore框架开源,支持前后端分离,具有可运行在国外国内系统的跨平台性;平台支持多语言、多币种,可以后台直接配置即可;

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧