如何用SQL语句得到两个字段相乘的结果

如何用SQL语句得到两个字段相乘的结果,第1张

用SQL语句得到两个字段相乘的结果:SELECT A.字段,B.字段,A.字段*B.字段 AS '结果' FROM A JOIN B ON A.ID=B.ID

也可以用以下形式书写执行(大写小写均可):

第一种:select b.字段,a.字段,b字段*a.字段 as '结果' from b left outer join a on b.id=a.id

第二种:select b.字段,a.字段,sum(b.字段*a.字段)as '结果' from b left outer join a on b.id=a.id group by b.字段,a.字段

第三种:SELECT B.字段,SUM(B.字段),SUM(B.字段*A.字段) AS '结果' FROM B LEFT OUTER JION A ON A.ID=B.ID  GROUP BY B.字段

扩展资料

用SQL语句得到两个字段相加、相减、相除的结果

两个字段相加的结果:SELECT A.字段,B.字段,A.字段+B.字段 AS '结果' FROM A JOIN B ON A.ID=B.ID

两个字段相减的结果:SELECT A.字段,B.字段,A.字段-B.字段 AS '结果' FROM A JOIN B ON A.ID=B.ID

两个字段相除的结果:SELECT A.字段,B.字段,A.字段/B.字段 AS '结果' FROM A JOIN B ON A.ID=B.ID  WHERE A.字段<>0 AND B.字段<>0

乱七八糟的,哪看得清。不是你表述不清楚啊,是你的做法太繁琐了,我都明白你的意图,做法真的太复杂,ACCESS表没必要这么做,直接在ACCESS表里做查询就行了。本身就存在两个多余的事:

1. ACCESS表建立在意个表数据库就行了

2. 建立表的时候金额数据类型的就设置默认值是0就好了,是空值不方便计算

如果你 一定要那么建立,办法肯定是有的,也不是很难。给两个思路:

方法一 你上面ADO代码不成问题就直接改一句SQL语句就好了(假如你的连接字符串是连接projectinfo.mdb的)

Dim sql1 as String

sql1="Select 编号 as 填入边傲, 子目名称, 数量, 单价, 数量*单价 as 总价 From (Select * From 工程量清单) as 查询1 Inner Join (Select * From 定额 IN ODBC[ODBC:Provider=Microsoft.Jet.OLEDB.4.0Data Source="quantity.mdb表路径"]) as 查询2 ON (查询1.编号=查询2.编号 and 查询1.子目名称=查询2.子目名称)"

sql2="Insert into 工程造价 Select * from " + sql1 + " as 查询3 Inner Join 工程造价 on 查询3.编号=工程造价.编号 and 查询3.子目名称=工程造价.子目名称 where ((工程造价.编号) is null)"

你看到没有,语句我用到了子查询、ODBC库跨数据库查询、按格式拼接字符串、连接查询。

语句你还需要检查一下,我还没测试过。

方法二 直接在projectinfo.mdb里做个连接表,连接quantity.mdb里的表,查询视图里连接查询工程量清单和定额表。就让他显示5个制作好的字段,把编号和子目名称连接起来匹配两个表的特征解释。保存这个查询叫查询明细表,把查询明细表插入到工程造价表里。

SQL语句就直接这么写:

sql2="Insert into 工程造价表 select 填入边傲,子目名称,数量,单价,总价 from 查询明细表 inner join 工程造价表 on 查询明细表.填入边傲=工程造价表.填入边傲 and 工程造价表.子目名称=工程造价表.子目名称 where ((工程造价表.填入边傲) is null)"

我的插入语句一直在检查是否重复再插入,你说是不,重复了就不让他插入,但第二句 *** 作时间能比第一句速度快上一倍。

你看懂没有。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6629021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存