| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1443 人关注过本帖
标题:请教:写一个SQL语句的问题
只看楼主 加入收藏
相公
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-31
收藏
 问题点数:0 回复次数:12 
请教:写一个SQL语句的问题
序号    工件    日期    完成情况
7    A    1/6    完成
6    A    1/3    完成3/4
5    A    1/2    完成2/4
4    B    1/6    完成2/3
3    B    1/3    完成1/3
2    C    1/6    完成2/3
1    C    1/1    完成1/5

上面是个数据表[工件]
现在想列出还没有完成的“工件”情况,因为我用 select * from [工件] where 完成情况<>'完成'
则序号是 5和6 都会列出来了,这样不符合要求,因为 A工件已经完成了,不需要列出。
那么该如何写语句??

[[it] 本帖最后由 相公 于 2008-10-23 22:59 编辑 [/it]]
搜索更多相关主题的帖子: SQL 语句 
2008-10-23 22:37
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
你也列出不完成那就是相反的嘛
select * from [工件] where 完成情况<>'完成'
不就是等于和不等于之间的区别嘛,这个也要问?

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-23 22:50
相公
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-31
收藏
得分:0 
先谢过了,
是我写错了,应该是:select * from [工件] where 完成情况<>'完成'

但是出现的情况正如我上面所说的。

[[it] 本帖最后由 相公 于 2008-10-23 22:57 编辑 [/it]]
2008-10-23 22:53
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
你这样写当然会把5和6也列出来了,因为你用的是不等于"完成" 而5和6是"完成3/4","完成2/4" 一直到下面都会列出来的
你说 "完成" 等于 "完成2/4" 吗?

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-23 23:00
相公
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-31
收藏
得分:0 
这正是我想要解决的问题,
就是 A工件已经完成了,属于A的都不需要列出。

继续指教!
2008-10-23 23:12
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
首先你要能保证 完成情况 字段里的数据库只有两种或这三种标准的内容

比如 "完成"  "没完成" "处理中" 这样的标准格式,不能这样 "完成"  "完成3/4" "完成2/4"
因为你的内容都不固定的,你怎么去都判断是完成的?
因为你使用的是不等于来判断,如果使用的是等于来判断,也许还能使用上模糊查询来找出所有内容中包括"完成"的文字

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-23 23:16
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
你这个 "完成" 都有很多种不同的格式,这就属于脏数据了,你还怎么判断啊

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-23 23:19
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
不过刚才仔细想了一下,应该可以行的通,我先把代码写出来,没有测试,你看看行不行

select * from [工件] where instr(完成情况,"完成")=0

意思是当"完成情况"字段中包含"完成"两个字的时候就大于0,不包含"完成"的时候就等于0

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-23 23:35
相公
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-31
收藏
得分:0 

序号    工件    日期    完成情况
7        A      1/6      完成
6        A      1/3      asddf
5        A      1/2      sd/4
4        B      1/6      sff
3        B      1/3      1/3
2        C      1/6      2/3
1        C      1/1      sdsa1/5

上面是个数据表[工件]

请帮我,即 A 已经“完成”时,如何只列出 B、C 来,
2008-10-23 23:39
相公
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-31
收藏
得分:0 
谢谢你,还在陪伴我
2008-10-23 23:45
快速回复:请教:写一个SQL语句的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026347 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved