导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

两个不相干的表列更新的问题,困扰我很久了。

newmankind 2005-09-27 06:37:28
我现在需要造一些数据做demo,不要真实准确,但是要求逻辑关联
一个表是主档表dealer
一个是业务表 sales,现在两个表每个都有一百条数据,
我想用dealer表的dealerid列去完全替换掉sales表中的dealerid列,怎么做?
...全文
107 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
newmankind 2005-09-28
update dbo.IST_L_Monthlysales
set dbo.IST_L_Monthlysales.dealerid = b.dealerid
from dbo.IST_L_Monthlysales,dbo.dealer b
也不行,这个也会只把dealerid更新为deale表中最后一个dealerid
回复
newmankind 2005-09-28
update dbo.IST_L_Monthlysales
set dbo.IST_L_Monthlysales.dealerid = b.dealerid
from dbo.dealerid b
不行,他只会更新dbo.IST_L_Monthlysales 的dealerid 为同一条数据

回复
MorningTea 2005-09-27
至于替换顺序,规则怎么都行

--既然这样,何必写那么多(select top 1 dealerid from dbo.dealer where
dealerid not in (select dealerid from dbo.IST_L_Monthlysales )) b
好麻烦哦

直接
update dbo.IST_L_Monthlysales
set dbo.IST_L_Monthlysales.dealerid = b.dealerid
from dbo.IST_L_Monthlysales,b
--这样更新就会按照物理顺序,更新IST_L_Monthlysales的dealerid等于b.dealerid
回复
newmankind 2005-09-27
是这样,sales表里,有销售信息,我不想清除,我只是想dealer表里的dealer替换掉所有的原来的dealer,至于替换顺序,规则怎么都行。而且我发现插入新数据好像行不通,我的代码写到这了,但是有问题,不知道怎么改
update dbo.IST_L_Monthlysales
set dbo.IST_L_Monthlysales.dealerid = b.dealerid
from (select top 1 dealerid from dbo.dealer where
dealerid not in (select dealerid from dbo.IST_L_Monthlysales )) b
回复
zlp321002 2005-09-27
--比如这样
create table t1 (column1 varchar(10))
insert into t1 select 'a'
insert into t1 select 'b'
insert into t1 select 'c'
insert into t1 select 'e'

create table t2 (column2 varchar(10))
insert into t2 select 'd'
insert into t2 select 'd'
insert into t2 select 'd'
insert into t2 select 'd'

truncate table t2
insert into t2(column2) select column1 from t1
select * from t2

--结果
column2
----------
a
b
c
e

(所影响的行数为 4 行)

--删除测试环境
Drop table T1,T2
回复
zlp321002 2005-09-27
--那就不知道更新的条数啊!那就清除了更新啊!
回复
newmankind 2005-09-27
那样不行,更新不了,它只会把dealer表的最后一个dealerid更新到sales
回复
zlp321002 2005-09-27
--那就不用"where" 啊 Where 我是说,你要加的条件..
update sales set dealerid=a.dealerid from dealer a
回复
newmankind 2005-09-27
楼上的兄弟,那样不行,我不用where就可以,两个表表面上看是完全不相关的
回复
zlp321002 2005-09-27
update sales set dealerid=a.dealerid from dealer a where....
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告