同一个表的行数据 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单别单号金额赋值金额赋值单号检索条件
011150.0050.001-1NULL
0222100.00100.002-2NULL
*/
--楼主的条件不怎么明白,特别是检索条件是什么
[解决办法]
create table tb(ID varchar(2),单别 int,单号 int,金额 int,赋值金额 varchar(3),赋值单号 varchar(4),检索条件 varchar(4))insert into tbselect '01',1,1,50,null,null,'2-2' union allselect '02',2,2,100,null,null,nullupdate 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-202 2 2 100 50 1-1 NULL*/