以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同一台设备,先安装后撤出,现存表如何删除这两个记录?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46972)

--  作者:tomcat521
--  发布时间:2014/3/2 16:02:00
--  同一台设备,先安装后撤出,现存表如何删除这两个记录?

给设备做了“安装、维修、维护、撤出”四个表:

 

 
图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

从“安装”和“撤出”两个表,建了“现存查询”表:

 

Select 客户号,省份,医院名称,安装科室,\'安装\' as 类型,设备型号,设备序列号 From {安装} UNION select 客户号,省份,医院名称,安装科室,\'撤出\' as 类型,设备型号,设备序列号 From {撤出}

  


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

当客户号+设备序列号同时出现在安装和撤出类型的时候,这两行记录在“现存查询”表里如何清除?

例如,截图中的12030045这台设备,在KH0003先安装,后来又撤出了,这两行怎么清除呢?

请大家给予提示,谢谢!

 


--  作者:lsy
--  发布时间:2014/3/2 17:43:00
--  

Select 客户号,省份,医院名称,安装科室,\'安装\' as 类型,设备型号,设备序列号 From {安装} Where 客户号 Not In (Select 客户号 From {撤出} Where 客户号 Is Not Null) And 设备序列号 Not In (Select 设备序列号 From {撤出} Where 设备序列号 Is Not Null)

UNION

select 客户号,省份,医院名称,安装科室,\'撤出\' as 类型,设备型号,设备序列号 From {撤出} Where 客户号 Not In (Select 客户号 From {安装} Where 客户号 Is Not Null) And 设备序列号 Not In (Select 设备序列号 From {安装} Where 设备序列号 Is Not Null)

 

 

Is Not Null 如果不加上,碰到空值的时候,就报错,而且还看不出错在哪。

[此贴子已经被作者于2014-3-2 18:01:45编辑过]

--  作者:tomcat521
--  发布时间:2014/3/3 20:44:00
--  
谢谢lsy,使用您的代码出现了新的问题,会缺少一些记录。
我自己再琢磨琢磨。