新足迹

 找回密码
 注册

精华好帖回顾

· 西澳行之- 珀斯, 向北 ,野花野花, 春光里的自驾之旅 (2016-10-12) woodywup · 2019曼谷吉隆坡出差快闪游 (完) (2020-9-26) shine_on
· 这种煎熬还要多久?买房路上(3月6号拍卖成功,P3附买房流水账) (2010-2-27) 墨香墨色 · 失眠一周,跑了1000公里,终于抱得美人归。细品美国春田1903步枪,超多图! (2013-5-28) Tacticool
Advertisement
Advertisement
查看: 1376|回复: 4

求助下,SQL选择一段没有的数据 [复制链接]

发表于 2011-9-5 23:25 |显示全部楼层
此文章由 Limitless 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Limitless 所有!转贴必须注明作者、出处和本声明,并保持内容完整
把asx全部股票15年 till today 的end of day数据都放进mysql数据库了,格式是metastock的,大概如下code,date,open,high,low,close,volume。
code就是股票代码,date格式是20110101这样的格式,字段格式也是8位的date。
现在问题是有些股票改名了,有些不存在了,比如股票代码AAA只有到1999年底的数据。我想把所有在一段时间之后比如20110101之后就没有数据的股票代码显示出来,自己想了两个,不过都不管用:SELECT distinct code FROM asx where code not like (select distinct code from `asx` WHERE date>20110101),返回0行。

SELECT DISTINCT code
FROM asx
WHERE NOT
EXISTS (

SELECT DISTINCT code
FROM  `asx`
WHERE DATE >20110101
)

这个把所有的distinct code都返回了……
Advertisement
Advertisement
头像被屏蔽

禁止访问

发表于 2011-9-5 23:41 |显示全部楼层
此文章由 atransformer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 atransformer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SELECT distinct code FROM asx where code  not in (select distinct code from `asx` WHERE date>20110101)

发表于 2011-9-5 23:49 |显示全部楼层
此文章由 Limitless 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Limitless 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 atransformer 于 2011-9-5 23:41 发表
SELECT distinct code FROM asx where code  not in (select distinct code from `asx` WHERE date>20110101)


很奇怪,执行出来还是所有的distinct code都出来了……

发表于 2011-9-5 23:51 |显示全部楼层
此文章由 Limitless 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Limitless 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Limitless 于 2011-9-5 23:49 发表


很奇怪,执行出来还是所有的distinct code都出来了……


解决了……原来2011年的数据忘了导入了…… - -! not exists 和not in都对

参与宝库编辑功臣

发表于 2011-9-7 08:57 |显示全部楼层
此文章由 bffbffbff 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bffbffbff 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lz你not exist 的代码不对, 因为subquery和主query没有任何联系,需要加上a.code=b.code, 金刚的也对in也可以

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部