新足迹

 找回密码
 注册

精华好帖回顾

· 征文活动:梦想和现实的差距 (想看澳洲经历者,直接看3楼) (2008-5-2) 月亮 · 重返日本游记,领略富士山的大气和小渔村的宁静, 另类路线走一遭(离开那智胜浦,白浜海鲜市场半日游) (2018-8-9) vikki
· 闲聊新加坡 -新加坡的交通 459楼 (2011-6-7) cygrace · 宝宝你来啦 - 奶牛笔记 (绝对原创,谢绝转发) (2011-9-13) sandwitch
Advertisement
Advertisement
查看: 1254|回复: 4

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

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


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


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

参与宝库编辑功臣

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

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部