| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1482 人关注过本帖
标题:如何实现集合间的“ - ” ???
取消只看楼主 加入收藏
gsb803
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-2-24
收藏
 问题点数:0 回复次数:4 
如何实现集合间的“ - ” ???
两个表:a表包含b表(即b表是a表的一部分),要是想从a表中选取不包含b表的数据(也就是a-b),请问sql语句如何设计?

我是新手,开始以为用连接可以搞定,但是后来发现这是集合查询而不是连接查询,我从一些资料中看到介绍有关于集合查询的关键词有union(并), except(差),忘了(交),(select * from a) except  (select * from b),结果不行!

亲高手指教!!谢谢!!
搜索更多相关主题的帖子: sql语句 关键词 except 
2005-02-24 17:10
gsb803
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-2-24
收藏
得分:0 

多谢斑竹的回复,但是具体如何操作呢?

更大的问题是遇到的具体问题却好像不是那么好解决,数据源是重某信息管理系统中抽取出来的,以MS-EXCEL的格式导出,再导入MS-SQLServer2000,所得数据表根本不符合数据库设计的范式要求。

例如数据源a表:

编码 名称 费用所属期 费用发生日期 金额 申请日期 …… 003…… 004 办公用品 2004-09-01 2004-09-30 250 2004-10-28 004 办公用品 2004-09-02 2004-09-30 250 2004-10-28 005 差旅费 2004-09-01 2004-09-30 300 2004-10-28 005 差旅费 2004-09-01 2004-09-30 300 2004-10-29 006 水电费 2004-08-01 2004-08-01 2000 2004-09-03 007…… ……

b表是:

编码 名称 费用所属期 费用发生日期 金额 申请日期 004 办公用品 2004-09-02 2004-09-30 250 2004-10-28 005 差旅费 2004-09-01 2004-09-30 300 2004-10-28

a表的意义是所有需要清算的项目,而b表记载的项目是已经清算完毕,现在需要做的是要统计出还没有清算的项目,及其详细资料,简单的说就是找出集合c = a - b。

再次请教斑竹和高手们!谢谢!

2005-02-25 15:19
gsb803
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-2-24
收藏
得分:0 
谁来帮下忙?
顶啊!
2005-02-28 09:31
gsb803
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-2-24
收藏
得分:0 
谢谢回复的朋友们
2005-03-08 09:47
gsb803
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-2-24
收藏
得分:0 
刚才试过:
select a.*
from a,b
 where a.编码<>b.编码  and a.名称<>b.名称
...................
是不行的
2005-03-08 11:49
快速回复:如何实现集合间的“ - ” ???
数据加载中...
 
   



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

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