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

newmankind 2005-09-27 06:37:28
我现在需要造一些数据做demo,不要真实准确,但是要求逻辑关联
一个表是主档表dealer
一个是业务表 sales,现在两个表每个都有一百条数据,
我想用dealer表的dealerid列去完全替换掉sales表中的dealerid列,怎么做?
...全文
146 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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....

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧