读书人

对比校验的有关问题

发布时间: 2012-03-21 13:33:15 作者: rapoo

对比校验的问题
如 有 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*/ 

读书人网 >SQL Server

热点推荐