本人用的是access数据库,用Delphi来实现下列功能,希望完成库存查询,包括如下情况:
进货表的货没有损耗没有出库
进货表的货有出库没有损耗
进货表的货没有有出库有损耗
进货表的货有出库有损耗 现有三张表,分别是进货表entertable、出库表outtable、损耗表brokentable 本人在Delphi中的编写的如下:
try
query1.Close;
query1.sql.Clear;
query1.SQL.Add('select name,(entertable.quantity-outtable.quantity-brokentable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name=outtable.name and outtable.name=brokentable.name');
query1.SQL.Add('union select name,(entertable.quantity-outtable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=brokentable.name and entertable.name=outtable.name');
query1.SQL.Add('union select name,(entertable.quantity-brokentable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=outtable.name and entertable.name=brokentable.name');
query1.SQL.Add('union select name,entertable.quantity from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=outtable.name and entertable.name!=brokentable.name;');
query1.Open;
except
on edatabaseerror do query1.ExecSQL
end; 按下确定后出现数据重复,不知道错在哪里
问题相当大!望高手赐教,不胜感激!!!! 问题补充:
entertable name class quantity price enterdate
1 芹菜 蔬菜 18 3元 08-11-10
2 高脚杯 用品 17 4元 08-12-10
outtable name class quantity price enterdate brokentable name class quantity price enterdate
大致明细如上
进货表的货没有损耗没有出库
进货表的货有出库没有损耗
进货表的货没有有出库有损耗
进货表的货有出库有损耗 现有三张表,分别是进货表entertable、出库表outtable、损耗表brokentable 本人在Delphi中的编写的如下:
try
query1.Close;
query1.sql.Clear;
query1.SQL.Add('select name,(entertable.quantity-outtable.quantity-brokentable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name=outtable.name and outtable.name=brokentable.name');
query1.SQL.Add('union select name,(entertable.quantity-outtable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=brokentable.name and entertable.name=outtable.name');
query1.SQL.Add('union select name,(entertable.quantity-brokentable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=outtable.name and entertable.name=brokentable.name');
query1.SQL.Add('union select name,entertable.quantity from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=outtable.name and entertable.name!=brokentable.name;');
query1.Open;
except
on edatabaseerror do query1.ExecSQL
end; 按下确定后出现数据重复,不知道错在哪里
问题相当大!望高手赐教,不胜感激!!!! 问题补充:
entertable name class quantity price enterdate
1 芹菜 蔬菜 18 3元 08-11-10
2 高脚杯 用品 17 4元 08-12-10
outtable name class quantity price enterdate brokentable name class quantity price enterdate
大致明细如上
解决方案 »
- CreateRemoteThread相关的问题
- 疑难问题求救,熟悉第3方控件InfoPower的进来看看,老鸟菜鸟都进来啊
- 当整个应用程序失去焦点触发什么消息?
- 如何用DELPHI实现网络数据转发
- ***********怎样写代码使大的JPG图片文件,象ACDSEE的Fit image功能一样显示一个完整而不失真的效果!****
- 有关fastreport的报表保存成WORD文档格式全乱的问题,I NEED HELP...
- 大家是怎么备份重要数据的(比如源代码)
- 怎么样定时刷新!!!!!!!!!!!
- 数据库引擎找不到数据表或查询
- THANLD,HWND,HINSTANCE的区别?
- 刚学delphi,我想设计一个公式,请教大家!
- cxgrid 分组排序
贴记录及要求结果出来看看
贴记录及要求结果出来看看
,如果有你在你的SQL语句外在嵌套一层,例如:SELECT DISTINCT 你的字段名
FROM
(你一开始的那个数据集)
(查询1
UNION
查询2
);
这样就可以去除重复数据了
[Microsoft][ODBC Microsoft Access Driver]语法错误(操作符丢失)在查询表达式'entertable.name!=brokentable.name and entertable.name=outtable.name '中.'
query1.Close;
query1.sql.Clear;
query1.SQL.Add('select DISTINCT name,(entertable.quantity-outtable.quantity-brokentable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name=outtable.name and outtable.name=brokentable.name');
query1.SQL.Add('union select name,(entertable.quantity-outtable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=brokentable.name and entertable.name=outtable.name');
query1.SQL.Add('union select name,(entertable.quantity-brokentable.quantity) from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=outtable.name and entertable.name=brokentable.name');
query1.SQL.Add('union select name,entertable.quantity from entertable,outtable,brokentable');
query1.SQL.Add('where entertable.name!=outtable.name and entertable.name!=brokentable.name;');
query1.Open;
except
on edatabaseerror do query1.ExecS加上红色部分就可以去掉重复数据adoconnection控件连接数据和query没什么关系,用query的话是通过BDE引擎,需要建立ODBC,用Adoconnection的话是通过ADO连接,在代码上基本上一样的,只是连接数据库的方式不同.