急问一个sql语句的写法。 --要的是这个么?select [A列] = (B列+C列+D列+E列)- (F列-1)*50, [B列], [C列], [D列], [E列], [F列]from [able] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是这样的。我是想update [table] set A = [(B列+C列+D列+E列)- (F列-1)*50]但是不知道具体应该怎么写 你是想更改还是查询,查询用楼上的就行update tblset a = (B列+C列+D列+E列)- (F列-1)*50from tbl update [TBL] set A=(B+C+D+E)- (F-1)*50 from TBL运行错误服务器: 消息 8115,级别 16,状态 2,行 1将 expression 转换为数据类型 smallint 时发生算术溢出错误。语句已终止。好象B+C+D+E不可以这样打吧??我是想修改。不是查询 数据类型A是int B,C,D,E,F都是smallint update tblset a = (B列+C列+D列+E列)- (F列-1)*50 如果你A列一直都是用来保存这样的结果的话,你可以一建表的时候就实现create table test1([A列] as (B列+C列+D列+E列)- (F列-1)*50,[B列] int ,[C列] int,[D列] int,[E列] int,[F列] int)--不能为A列插入数据 现在的问题是好象(B列+C列+D列+E列) 这样的写法不正确。其他的都没问题。 发现新问题。(B列+C列+D列)3列相加没有问题。(B列+C列+D列+E列)这样的话出现服务器: 消息 8115,级别 16,状态 2,行 1将 expression 转换为数据类型 smallint 时发生算术溢出错误。语句已终止。数据类型A是int B,C,D,E,F都是smallint这种怎么处理? update tb1set A列=(convert(int,B列)+convert(int,D列)+convert(int,E列))-(convert(int,F列)-1)*50 溢出错误,,有可能(B+C+D+E)加起来超出smallint的范围,,你试一下:update [TBL] set A=convert(int,(B+C+D+E))- (F-1)*50 from TBL 好了处理好了。结贴了。我分2次处理就没问题了update [TBL] set A=(A+B+C)update [TBL] set A=(A+D+E)update [TBL] set A=(F-1)*50这样就可以了。希望大家以后遇到这个问题有个了解 关于sql sever 如何界定某数值是否在表内某2个数值之间? 关于一sql树的递归问题 ◆◆◆请看看这个语句怎么优化,提高语句效率◆◆◆ 在线等待... Microsoft Data Engine (MSDE)是免费发布的吗? 多个服务器数据库问题 mssql多表联合查询问题,求助? varchar 转 float及行列转换问题 有关like中通配符的问题 关于SQL Server 中日志文件的用法 临时表的查询 还原的库,再建用户就提示已存在的用户或角色,怎么办啊
我是想update [table] set A = [(B列+C列+D列+E列)- (F列-1)*50]
但是不知道具体应该怎么写
update tbl
set a = (B列+C列+D列+E列)- (F列-1)*50
from tbl
运行错误
服务器: 消息 8115,级别 16,状态 2,行 1
将 expression 转换为数据类型 smallint 时发生算术溢出错误。
语句已终止。好象B+C+D+E不可以这样打吧??
我是想修改。不是查询
set a = (B列+C列+D列+E列)- (F列-1)*50
create table test1
(
[A列] as (B列+C列+D列+E列)- (F列-1)*50,
[B列] int ,
[C列] int,
[D列] int,
[E列] int,
[F列] int
)--不能为A列插入数据
服务器: 消息 8115,级别 16,状态 2,行 1
将 expression 转换为数据类型 smallint 时发生算术溢出错误。
语句已终止。数据类型A是int
B,C,D,E,F都是smallint
这种怎么处理?
set A列=
(convert(int,B列)+convert(int,D列)+convert(int,E列))-(convert(int,F列)-1)*50
你试一下:update [TBL] set A=convert(int,(B+C+D+E))- (F-1)*50 from TBL
我分2次处理就没问题了
update [TBL] set A=(A+B+C)
update [TBL] set A=(A+D+E)
update [TBL] set A=(F-1)*50
这样就可以了。希望大家以后遇到这个问题有个了解