在我的Access数据库中有两个表,入库表和出库表,我想对入库表中数量这一项加和,对出库表中数量这一项加和,再将这两个和相减,得到剩余数量。这是我入库表中SQL的语句 “SELECT 原料, SUM(数量) FROM 入库信息表 GROUP BY 原料”。请问大家这个应该怎么办?谢谢!!!
解决方案 »
- 循环运行完这句之后SetLength(sRet, pData.iDataLen - (SHEAD_LEN + 1) + 2);内存溢出了
- 求助关于TStream和TMemo.Line.SaveToStream出错的问题。
- 【求助】怎么在类中使用“Application.ProcessMessages”?
- 邮件特快专递示例程序有错误,请帮帮忙!
- 我用ADO+SQLServer2000做的管理系统怎么改成c/s结构的呢?
- 好心人帮我看看这段代码吧,郁闷啊!
- 动态库中的子窗口,为什么方向键没有用了,高手请进!高分100
- 有用delphi7做过邮件群发软件的朋友吗
- 如何使用这个控件???
- shellexecute的一些"高级"问题?请看看!
- 合格率计算
- 菜鸟提问个问题【delphi与RCData】
不确定的情况下可以用full join,也可以用union all,如:select 原料,sum(数量) 数量
from(select 原料,数量 from 入库信息表
union all
select 原料,-数量 from 出库信息表) as X
group by 原料
sql := 'select a.原料,(a.数量 - b.数量) as totol from (SELECT 原料, SUM(数量) as 数量 FROM 入库信息表 GROUP BY 原料) a inner join (SELECT 原料, SUM(数量) as 数量 FROM 出库信息表 GROUP BY 原料) b on a.原料 = b.原料';
with adoquery do
begin
Close;
sql.clear;
sql.add(sql);
Open;
if not adoquery.eof then
begin
name := trim(adoquery.FieldByName('原料').assstring);
weight := trim(adoquery.FieldByName('totol).assstring);
end;
end;