CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

表2如何和表1连接后,实现我想要的效果

楼主Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)2006-03-02 18:02:24 在 MS-SQL Server / 基础类 提问

表1:  
    id                       time                   bid               cell     carrierpos     carrierid  
  124147 2006-3-1   0:00 2 XN001A 0 TH60271736  
  124153 2006-3-1   0:00 2 XN001A 0 null  
  124148 2006-3-1   0:00 2 XN001A 1 TH60271737  
  124149 2006-3-1   0:00 2 XN001A 2 TH60284577  
  124150 2006-3-1   0:00 2 XN001A 3 TH60271792  
  124151 2006-3-1   0:00 2 XN001A 4 TH60284621  
  124152 2006-3-1   0:00 2 XN001A 5 TH60514670  
  124422 2006-3-1   0:00 2 XN001B 0 TH60283951  
  124423 2006-3-1   0:00 2 XN001B 1 TH60271629  
  124154 2006-3-1   0:00 2 XN001B 2 null  
  124424 2006-3-1   0:00 2 XN001B 2 TH60284586  
  124155 2006-3-1   0:00 2 XN001B 3 null  
  124425 2006-3-1   0:00 2 XN001B 3 TH60284579  
  124426 2006-3-1   0:00 2 XN001B 4 TH60284635  
  124427 2006-3-1   0:00 2 XN001B 5 TH60305716  
   
  表2:  
  cell     carrierpos     carrierid  
  XN001A 0 TH60271736  
  XN001A 1 TH60271737  
  XN001A 2 TH60284577  
  XN001A 3 TH60271792  
  XN001A 4 TH60284621  
  XN001A 5 TH60514670  
  XN001B 0 TH60283951  
  XN001B 1 TH60271629  
  XN001B 2 TH60284586  
  XN001B 3 TH60284579  
  XN001B 4 TH60284635  
  XN001B 5 TH60305716  
   
  表2是从表1中查询得到的结果,现在我想把表2和表1关联,得到下面的结果  
  去掉同一cell,同一carrierpos,且carrierid是空的值  
   
    id                       time                   bid               cell     carrierpos     carrierid  
  124147 2006-3-1   0:00 2 XN001A 0 TH60271736  
  124148 2006-3-1   0:00 2 XN001A 1 TH60271737  
  124149 2006-3-1   0:00 2 XN001A 2 TH60284577  
  124150 2006-3-1   0:00 2 XN001A 3 TH60271792  
  124151 2006-3-1   0:00 2 XN001A 4 TH60284621  
  124152 2006-3-1   0:00 2 XN001A 5 TH60514670  
  124422 2006-3-1   0:00 2 XN001B 0 TH60283951  
  124423 2006-3-1   0:00 2 XN001B 1 TH60271629  
  124424 2006-3-1   0:00 2 XN001B 2 TH60284586  
  124425 2006-3-1   0:00 2 XN001B 3 TH60284579  
  124426 2006-3-1   0:00 2 XN001B 4 TH60284635  
  124427 2006-3-1   0:00 2 XN001B 5 TH60305716 问题点数:50、回复次数:9Top

1 楼scmail81(琳·风の狼(修罗))回复于 2006-03-02 20:47:39 得分 5

??  
  select   *   from   表1   where   carrierid   is   not   nullTop

2 楼happyflystone(无枪的狙击手)回复于 2006-03-02 21:44:11 得分 5

select   *    
  from   表1   a  
  where   not   exists(  
  select   1   from   表1   b,表2   c   where   b.cell   =   c.cell   and   b.carrierid   =   c.carrierid   and   b.carrierid   is   null)Top

3 楼ReViSion(和尚)回复于 2006-03-02 23:20:52 得分 5

表2是表1查询之后得到的结果  
  ----------------------------------  
  不知道是什么查询条件得到的结果  
   
  按照楼主提供的数据,  
  select   *   from   表1   where   carrierid   is   not   null  
  好像就可以达到目的Top

4 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-03 10:30:42 得分 0

是这样的,表2是满足time,bid,cell,carrierpos相等,然后carrierid有一个为空的,我就删除哪个为空的,留下不为空的就是表二的数据,另外一种情况是允许carrierid为空,但是前提条件是前面的time,bid,cell,carrierpos没有相等的数据。  
   
  表1:  
    id                       time                   bid               cell     carrierpos     carrierid  
  124147   --     2006-3-1   0:00     --2   --       XN001A   --     0     --         TH60271736  
  124153   --     2006-3-1   0:00     --2   --       XN001A   --     0     --                 null  
  124148   --     2006-3-1   0:00     --2   --       XN001A   --     1     --         TH60271737  
  比如上面的数据第2行与第三行的time,bid,cell,carrierpos相等,但是carrierid为空,所以我就要删除第二行的这个无效数据,那么还有如下情况,比如  
  124422             2006-3-1   0:00       2               XN001B             0               TH60283951  
  124423             2006-3-1   0:00       2               XN001B             1               TH60271629  
  124154             2006-3-1   0:00       2               XN001B             2                   null  
  124424             2006-3-1   0:00       2               XN001B             3             TH60284586  
  第三行的carrierid为空,但是他和第四列time,bid,cell,carrierpos不相等,所以就是有效数据,我现在就是想把表一中的无效数据删除,得到一个最终表,不是表二Top

5 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-03 13:14:41 得分 0

自己在up下Top

6 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-03 23:09:36 得分 0

兄弟们帮帮忙阿Top

7 楼mm2love2zz(never stop.)回复于 2006-03-04 00:30:01 得分 20

找个测试库,试试:  
   
  delete   from   tb1   a  
  where   exsites(select   1   from   tb1   b    
  where   b.time=a.time   and   b.bid=a.bid   and   b.cell=a.cell   and   b.carrierpod=a.carrierpod  
  and   b.carrierid='null')Top

8 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-04 12:12:16 得分 0

好的,我看看先Top

9 楼wgsasd311(自强不息)回复于 2006-03-04 12:35:18 得分 15

delete   a   from   tb   a  
  where    
  carrierid   IS   null  
  AND  
  exists  
  (select   1   from   tb      
  where   [time]=a.[time]   and    
  bid=a.bid   and    
  cell=a.cell   and    
  carrierpod=a.carrierpod    
  )Top

相关问题

  • 请大侠帮忙,如何实现“正在连接。。。请稍候”的效果
  • 在C++builder里如何c++builder实现网页的超连接效果
  • 如何实现超连接http://localhost/◇□○◇□/admin.asp,中间是乱码的效果
  • 怎样实现DATAGRID在列表头里实现控件的分行效果
  • 用CRecordset怎么实现动态连接数据表啊?
  • 怎样实现水晶报表与ADO的连接?(高分,急!!!!)
  • 请问:如何实现对Foxpro表的无数据源连接
  • Access中如何实现一个表对多个的左连接
  • vf中如何用sql实现一对3个表左连接
  • 如何实现三张表格的连接查询

关键词

  • cell
  • 数据
  • null
  • xn001
  • carrierid
  • th
  • carrierpos
  • 表
  • carrierpod
  • bid

得分解答快速导航

  • 帖主:Rubi
  • scmail81
  • happyflystone
  • ReViSion
  • mm2love2zz
  • wgsasd311

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo