
正文
sqlserver中相乘,sqlserver乘法函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
SQL Server2000 相乘
update b set amt=(select qty*up/100 from a where a.b_id = b.id)
b_id 是a表中存储的b表id(也可以改成其他唯一标识)
相关问答
Q1: SQL server数据库表之间的字段值相乘怎么写
解决方案:
比如说表t,有三个int型字段xintyintzint要求实现z=x*y那么,如果是SQLSERVER的话,可以写一个Job定时扫描表t,把x*y的结果赋值给zJob要做的事情就是:updatetsetz=x*ywherexisnotnullandyisnotnull或者,在表t上建一个触发器,当满足x、y均有值的时候,把x*y的结果更新给zaccess不清楚怎么创建Job或者触发器你可以写一个小程序,定时执行,用这个小程序去刷表t,更新z的值!
Q2: sqlserver 中乘法计算
update B set TotalPrice=Price*Number from B join A on A.BookID=B.BookID
或
update B set TotalPrice=Price*Number from B , A where A.BookID=B.BookID
Q3: SQL server 2000中如何实现以下乘法
补充: 测试通过,结合测试例子说明
我觉得你应该有另外一个表是用来存商品的价格的
这样比较通用一点如 type char(10) ,price int
type price
1 10
2 20
......
设这个表为product
你原来给的那个表为selling(type char(10),sub char(10),qty int)
我随便设几个数据进去
type sub qty
1 a 2
1 b 2
2 c 1
2 a 5
那么有
select sub,sum(price*qty) as sum_of_sub
from (
select selling.type,sub,qty,price
from product,selling
where product.type=selling.type
) as temp_table
group by temp_table.sub
order by temp_table.sub
;
语句我尽量少用别名,好理解一点
结果会显示出所有sub的消费总额
为
sub sum_of_sub
a 120
b 20
c 20
这个语句是通用的,多少种商品,多少个客户,多少比买卖都可以
Q4: 有关sqlserver中的乘法运算
不管是sql语句里还是存储过程里,没有什么特别的函数来作乘法去处,直接用*是可以的,可能还是你的语法哪里没写对
Q5: 如何用sql乘法求乘积?
根据题意,你应该想让1表中的A列和2表中的B列的对应行相乘,相乘不是问题,所以你的问题主要是在“对应行”上,如果你的两张表都有表示行号的字段,那就很好解决:
select a.A*b.B as 乘积 from table1 as a,table2 as b where a.ID=b.ID;
如果没有行号,就必须使用函数或者子查询来解决行号的问题,但是你没有告诉我你用的是哪种数据库,SQL SERVER 2005以上有ROW_NUMBER()函数可以解决,ORACLE有ROWNUM字段可以解决,不同的数据库解决行号的办法不同。这样吧,我给你个比较通用的子查询方法,不用这些特殊的函数:
select a.A*b.B as 乘积 from (select identity(int,1,1) as rownum,* from table1) as a, (select identity(int,1,1) as rownum,* from table2) as b where a.rownum=b.rownum
额~~~
晚上看了下我的回答,有点草率了,identity(int,1,1)估计不能这么用(现在过年,没 数据环境测试),下面这个代码保险点:
alter table table1 add column ididentity(int,1,1)
alter table table2 add column id identity(int,1,1)
select a.A*b.B as 乘积 from table1 as a,table2 as b where a.id=b.id;






