同一个表的行数据 UPDATE
示例:
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50 2-2
02 2 2 100
if 单别=LEFT(检索条件,1) and 单号=RIGHT(检索条件,2)
BEGIN UPDATE 赋值金额= 金额,赋值单号=单别+'-'+单号
最后 result:
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50 2-2
02 2 2 100 50 1-1
咋用UPDATE 实现这样的效果呢!
谢谢!
------解决方案--------------------
/*
示例:
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50 2-2
02 2 2 100
if 单别=LEFT(检索条件,1) and 单号=RIGHT(检索条件,2)
BEGIN UPDATE 赋值金额= 金额,赋值单号=单别+'-'+单号
最后 result:
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50 2-2
02 2 2 100 50 1-1
咋用UPDATE 实现这样的效果呢!
*/
if
OBJECT_ID('tbl')is not null
drop table tbl
go
create table tbl(
ID varchar(4),
单别 varchar(4),
单号 varchar(4),
金额 numeric(6,2),
赋值金额 numeric(6,2),
赋值单号 varchar(10),
检索条件 varchar(10)
)
go
insert tbl (ID,单别,单号,金额)
select '01','1','1',50
union all
select '02','2','2',100
update tbl
set 赋值金额=a.金额,赋值单号=a.单别+'-'+a.单号
from tbl a where a.ID=ID
/*
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50.00 50.00 1-1 NULL
02 2 2 100.00 100.00 2-2 NULL
*/
--楼主的条件不怎么明白,特别是检索条件是什么
------解决方案--------------------
SQL code
create table tb
(ID varchar(2),单别 int,单号 int,金额 int,
赋值金额 varchar(3),赋值单号 varchar(4),检索条件 varchar(4))
insert into tb
select '01',1,1,50,null,null,'2-2' union all
select '02',2,2,100,null,null,null
update a set 赋值金额=b.金额,赋值单号=ltrim(b.单别)+'-'+ltrim(b.单号)
from tb a left join tb b
on left(b.检索条件,1)=a.单别 and right(b.检索条件,1)=a.单号
select * from tb
/*
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
---- ----------- ----------- ----------- ---- ---- ----
01 1 1 50 NULL NULL 2-2
02 2 2 100 50 1-1 NULL
*/