VB中用ADO编程 SQL语句

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:44:13
我在VB中用ADO编程时

ghd(供货单)
编号 供应商 经手人 备注
10001 海信 张三
10002 海尔 李四
10003 DELL 王五

ghdmx(供货单明细)
供货编号 商品编号 单价 数量
10001 9001002 1000 2
10001 9001003 897 3
10001 9001004 204 5
10001 9001005 3990 2
10002 9001001 2000 6
10002 9001003 897 7
10002 9001008 892 80
10002 9001004 204 100
10003 9001001 2000 5
10003 9001002 1000 15

有上面两个表,我想统计每个供货单信息(包含每单的总金额),
我是这样写的:

select ghd.编号,供应商,经手人,sum(ghdmx.单价*ghdmx.数量) as 金额
from ghd,ghdmx
where ghd.编号=ghdmx.供货编号

出现了 实时错误'-2147217887(80040e21)'
试图执行一个合计函数中包含特定表达式'编号'的查询。

怎样解决上述问题?只要能实现指定功能就行。不要改变数据库结构。

不理解题意的不要乱回答,谢谢合作.
即使将编号转换成int ,供应商 经手人也不能转换,还是不能达到目的.还是谢谢你的回答

好象在VB中,合计函数只适用于数值型,我是指的所有字段都必须是数值型,即使不进行计数运算也不行,比如 供应商 经手人,那么有没有办法让这些不进行计数运算的字段也出现在查询结果中.用并运算、连接运算什么的行吗?

请高手高手高高手进来回答!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

这是纯SQL问题,和VB没有关系
select ghd.编号,供应商,经手人,sum(ghdmx.单价*ghdmx.数量) as 金额
from ghd,ghdmx
where ghd.编号=ghdmx.供货编号

这个语句少了GROUP BY是不行的

应该这样写:
select ghd.编号,供应商,经手人,sum(ghdmx.单价*ghdmx.数量) as 金额
from ghd,ghdmx
where ghd.编号=ghdmx.供货编号
group by ghd.编号,供应商,经手人

你要对数据库中存储的值进行数值转换,转换成为int类型,这样才能运算。只把单价和数量的转换成int类型就可以呀