如何用sql乘法求乘积?

 我来答
Forseayoung
推荐于2019-10-31 · TA获得超过146个赞
知道小有建树答主
回答量:195
采纳率:70%
帮助的人:137万
展开全部
  根据题意,你应该想让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;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式