我想把两个表合并后再分类汇总,怎么做?急!急!急! (100分)

  • 主题发起人 主题发起人 炎帝
  • 开始时间 开始时间

炎帝

Unregistered / Unconfirmed
GUEST, unregistred user!
我有两个表:进货.DB 出货.DB
名称 名称 //数据库结构完全一样
颜色 颜色 //两个表都没有索引,因为数据库中
数量 数量 //有很多条记录名称字段是重复的。
金额 金额
日期 日期
————————————————————————————————————————
现在我要把两个表根据时间段将它们合并且进行分类汇总,生成如下格式的表格,再打印出来:
进出货汇总.DB 临时,可不要
名称 颜色 进货数量 进货金额 出货数量 出货金额
| | | |
| | | |
进货.DB中的数量、 金额 出货.DB中的数量、 金额

注意:1、产品的分类方法是根据名称和颜色,也就是说名称相同并不代表同一种产品,要
颜色也一样才行。
2、所要求达到的效果是:根据时间段,(比如2002-2-1至2002-3-1之间)将所有的
产品(产品=名称+颜色)汇总统计,使人可一目了然的知道:在这段时间内,总
共出了多少种产品,每种产品共进了多少。

本人乃Delphi初学者,对很多东西都还不是很清楚,所以请大家能够回答的详细一些,谢谢!!


 
試一下我的:
var str:string;
query.close;
str:='select a.名稱,a.顏色,進貨數量=sum(a.數量),進貨金額=sum(a.金額),'
+' 出貨數量=(select sum(b.數量) from ''出貨.db'' b where b.名稱=a.名稱 and b.顏色=a.顏色 and b.出貨日期>=:date1 and b.出貨日期<=:date2),'
+' 出貨金額=(select sum(b.金額) from ''出貨.db'' b where b.名稱=a.名稱 and b.顏色=a.顏色 and b.出貨日期>=:date1 and b.出貨日期<=:date2),'
+' from ''進貨.DB'' '
+' where a.進貨日期>:date1 and a.進貨日期<=:date2 group by a.名稱,a.顏色';
query.sql.text:=str;
query.parambyname('date1').asstring:='2002-02-01';//輸入查詢開始日期
query.parambyname('date2').asstring:='2002-03-01';//輸入查詢結束日期
query.open;
 
不行,它告诉我:Invalid use of keyword
Token:=sum(a.數量),進貨金額=sum(a.金額)

请再次注意,这两个表没有建立索引
 
var str:string;
query.close;
str:='select a.名稱,a.顏色,進貨數量=sum(a.數量),進貨金額=sum(a.金額), 出貨數量=sum(b.數量) , 出貨金額= sum(b.金額) from ';
str=str+'" 进货.db" a,"出货.db" b where (a.進貨日期>:date1) and (a.進貨日期<=:date2) and (a.名稱=b.名稱)and(a.颜色=b.颜色)and(b.進貨日期>:date1) and (b.進貨日期<=:date2) group by a.名稱,a.顏色"';
query.sql.text:=str;
query.parambyname('date1').asstring:='2002-02-01';//輸入查詢開始日期
query.parambyname('date2').asstring:='2002-03-01';//輸入查詢結束日期
query.open;
 
TO天真:和前一个一样的错误,不知是否是因为没有索引?
 
后退
顶部