首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-02-11 
sql 同一表A中两字段相减 (100分)sql同一表A中两字段(使用终期限,使用年限)相减后,得到使用起期限,将值赋

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

热点排行