
C2=IF(A2="","",B2*VLOOKUP(A2,表二!A:B,2,))
将公式向下复制.
对C列求和即可.
另外,你表二中如果同一品名有两种单价(如Z)就不知道你要哪种单价了.
表名:tj列名: id 序号 int型 | cx 车行 int型
表内容:
id cx
15 5
25 5
34 5
44 4
55 4
根据你的要求执行下面的语句:
select cx,count(*),case cx when 4 then count(*)*20 when 5 then count(*)*25 else 0 end
from tj
group by cx
结果:
cx(车型) 过车数 收费数
4 2 40
5 3 75
不知道是否符合你的要求,希望对你有帮助
乱七八糟的,哪看得清。不是你表述不清楚啊,是你的做法太繁琐了,我都明白你的意图,做法真的太复杂,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条)