首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

对比校验的有关问题

2012-03-21 
对比校验的问题如 有 A B 2张表A表中有字段dm,jcB表中有字段dm,km,sz其中 km字段是单选项km求存在 A 中的

对比校验的问题
如 有 A B 2张表
 

A 表中有字段 dm,jc

B 表中有字段 dm,km,sz
其中 km字段是单选项 km 


求 存在 A 中的记录,而在 B 表中 km 字段 不等于 1 或 2 或 3的记录。

提出缺少 了 km字段中的哪个 数值。


A 表数据如下:

dm jc
001 上
002 下
003 上
004 下



B 表数据如下:

dm km
001 1
001 2 
002 1
002 2
002 3
003 3 

那么 提出的数据应该是:
001 3
003 1
003 2


坐等大大
 

[解决办法]

SQL code
declare @A table (dm varchar(3),jc varchar(2))insert into @Aselect '001','上' union allselect '002','下' union allselect '003','上' union allselect '004','下'declare @B table (dm varchar(3),km int)insert into @Bselect '001',1 union allselect '001',2 union allselect '002',1 union allselect '002',2 union allselect '002',3 union allselect '003',3select d.dm,d.col from (select * from @A a cross join (select 1 as col union select 2 union select 3)cwhere a.dm in (select dm from @B))dfull join  @B b on d.col=b.km and d.dm=b.dm where b.km is null order by 1/*dm   col---- -----------001  3003  1003  2*/ 

热点排行