如何实现集合间的“ - ” ???
两个表:a表包含b表(即b表是a表的一部分),要是想从a表中选取不包含b表的数据(也就是a-b),请问sql语句如何设计?我是新手,开始以为用连接可以搞定,但是后来发现这是集合查询而不是连接查询,我从一些资料中看到介绍有关于集合查询的关键词有union(并), except(差),忘了(交),(select * from a) except (select * from b),结果不行!
亲高手指教!!谢谢!!
多谢斑竹的回复,但是具体如何操作呢?
更大的问题是遇到的具体问题却好像不是那么好解决,数据源是重某信息管理系统中抽取出来的,以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。
再次请教斑竹和高手们!谢谢!