问题首先你是要怎么更新法, 然后再是怎么改, 因为 A 和 B 都是多行, 那肯定有一个匹配问题, 哪一个A 对哪一个B呢.
就是我先用select语句查询出一个结果, 然后想把结果的每一行都update到一个表中的对应行
这是我的语句: IF NOT EXISTS(( select 车牌号码,车架号,发动机号,VIN码 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息))) BEGIN insert into 车辆信息(车牌号码,车架号,发动机号,VIN码) (select 车牌号码,车架号,发动机号,VIN码 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息)) END ELSE BEGIN update 车辆信息 set 车架号 = ( select 车架号 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ), 发动机号 = ( select 发动机号 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ), VIN码 = ( select VIN码 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ) where 车牌号码 = ( select 车牌号码 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ) END
关键语句: update 车辆信息 set 车架号 = ( select 车架号 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ), 发动机号 = ( select 发动机号 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ), VIN码 = ( select VIN码 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) ) where 车牌号码 = ( select 车牌号码 from sheet1 where CHECKSUM(车牌号码) in (select CHECKSUM(车牌号码) from 车辆信息) )
如果多行的话,你可以 max 或 min 一下,更新为最大值或最小值 。PS,要和业务确认好。
where b=多行 可以改成 where b in (select XXXXXX)可是 update XXX set A= 多行 肯定是不行的。必须唯一,否则更新成哪个值啊
因为 A 和 B 都是多行, 那肯定有一个匹配问题, 哪一个A 对哪一个B呢.
就是我先用select语句查询出一个结果, 然后想把结果的每一行都update到一个表中的对应行
这是我的语句:
IF NOT EXISTS((
select 车牌号码,车架号,发动机号,VIN码
from sheet1 where CHECKSUM(车牌号码)
in (select CHECKSUM(车牌号码) from 车辆信息)))
BEGIN
insert into 车辆信息(车牌号码,车架号,发动机号,VIN码)
(select 车牌号码,车架号,发动机号,VIN码
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息))
END
ELSE
BEGIN
update 车辆信息 set 车架号 = (
select 车架号
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
),
发动机号 = (
select 发动机号
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
),
VIN码 = (
select VIN码
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
)
where 车牌号码 = (
select 车牌号码
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
)
END
update 车辆信息 set 车架号 = (
select 车架号
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
),
发动机号 = (
select 发动机号
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
),
VIN码 = (
select VIN码
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
)
where 车牌号码 = (
select 车牌号码
from sheet1 where CHECKSUM(车牌号码)
in
(select CHECKSUM(车牌号码) from 车辆信息)
)
where b=多行 可以改成 where b in (select XXXXXX)可是 update XXX set A= 多行 肯定是不行的。必须唯一,否则更新成哪个值啊
求大神去解答啊!!!