读书人

sql 同一表A中两字段相减 (100分),该

发布时间: 2012-02-11 09:51:35 作者: rapoo

sql 同一表A中两字段相减 (100分)
sql 同一表A中两字段(使用终期限,使用年限)相减后,得到 使用起期限,将值赋给B中的b字段,其中使用终期限,使用年限为vachar型

实际情况是这样的:
使用终期限(例如 20410519) , 使用年限(50) 现在要得到 使用起期限的值

我试着写了一下:
select convert(int,(LEFT(使用终期限,4))-convert(int,使用起期限) as b from A where (A.ID0 = B.IDO)
但是执行报错,请各位高手指点,急用!!
谢谢了,分全都给了!

[解决办法]
你的句改

select convert(int,LEFT(使用终期限,4)) - convert(int,使用起期限) as 使用年限 from A inner join B On A.ID0 = B.IDO
[解决办法]

赋值给B需要update B 吧,

update B set X =TabB.b from B jion (
select convert(int,(LEFT(使用终期限,4))-convert(int,使用起期限)) as b from A
) TabB on Tabb.ido = a.ido


[解决办法]
如果需要将使用起期限转换为与使用终起期限一样的格式,使用convert转换一下:

declare @EndDate varchar(10),@years varchar(10)
set @EndDate = '20410519 '
set @years = '50 '
select convert(varchar,dateadd(year,-cast(@years as int),cast(@EndDate as datetime)),112)

/*结果
19910519
*/

select CONVERT(varchar,dateadd(year,-cast(使用终期限 as int),cast(使用年限 as datetime)),112)
from YwblDBCHKUPDOCTBL

读书人网 >SQL Server

热点推荐