高手请来帮忙!一个简单的查询的问题!

zhuwevmfc 2004-04-10 06:45:51
我有一张股票时事信息表,里面有
ID
股票id
最新价格
更新时间
我每分钟都要向这张表添加一组股票的最新信息
例如:
ID 股票id 最新价格 更新时间
1 1 12.00 2004-4-9 16:05:07
2 2 3.00 2004-4-9 16:04:08
3 1 12.50 2004-4-9 16:08:07
4 2 3.80 2004-4-9 16:05:08
5 1 12.40 2004-4-9 16:10:07
6 2 3.60 2004-4-9 16:10:08

我要求出最新的一组(包括股票1和股票2)
5 1 12.40 2004-4-9 16:10:07
6 2 3.60 2004-4-9 16:10:08
我可能随时还要添加股票
求一句最简单的sql语句!
...全文
20 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuwevmfc 2004-04-10
  • 打赏
  • 举报
回复
哦!谢谢了~!
smalldeer 2004-04-10
  • 打赏
  • 举报
回复
我是个菜鸟,谢谢高手指点
我还是不明白select 1 from tablename 里的1 代表是第一个字段吗?
是不是id字段呀?

不是,
你也可以用*,或某个字段代替 1 ,
因为exists只是要判断查询语句的结果集是否有记录,而不用返回具体的结果集
if exists(select * from ...)
if exists(select 字段 from ...)
if exists(select 1 from ...)
都可以,
只是select 1 from 不用去找字段,更加快捷
zhuwevmfc 2004-04-10
  • 打赏
  • 举报
回复
我是个菜鸟,谢谢高手指点
我还是不明白select 1 from tablename 里的1 代表是第一个字段吗?
是不是id字段呀?
CCEO 2004-04-10
  • 打赏
  • 举报
回复
整个的意思是:找不到股票id 相同而且更新时间比现有记录更新的记录
CCEO 2004-04-10
  • 打赏
  • 举报
回复
是个子查询

where not exists (
select 1 from tablename
where 股票id =a.股票id
and 更新时间>a.更新时间
)
zhuwevmfc 2004-04-10
  • 打赏
  • 举报
回复
select 1 from tablename
where 股票id =a.股票id
and 更新时间>a.更新时间
这个1代表什么意思呀?
CCEO 2004-04-10
  • 打赏
  • 举报
回复
用时间判断更合理
select * from tablename a
where not exists (
select 1 from tablename
where 股票id =a.股票id
and 更新时间>a.更新时间
)
CCEO 2004-04-10
  • 打赏
  • 举报
回复
最新股价:

select * from tablename a
where not exists (
select 1 from tablename
where 股票id =a.股票id
and id>a.id
)

lynx286 2004-04-10
  • 打赏
  • 举报
回复
select * from 表 a
where 更新时间= (select max(更新时间) from 表 where 股票id = a.股票id )

34,593

社区成员

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

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