用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)"
我的插入语句一直在检查是否重复再插入,你说是不,重复了就不让他插入,但第二句 *** 作时间能比第一句速度快上一倍。
你看懂没有。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)