使用DELPHI7和ACCESS做个查询程序,要做多表查询,并可导出结果。以前没接触过。 求指教

包含表:1、商品类别信息表类别号类别名01日化02服装2、销售信息表产品编号品名类别号店面号产品订价销售金额销售日期1001海飞丝010122232012-01-0110... 包含表:1、商品类别信息表 类别号  类别名
              01     日化
              02     服装
2、销售信息表 产品编号 品名 类别号 店面号 产品订价 销售金额 销售日期
         1001  海飞丝 01  01  22     23  2012-01-01
         1002  哥弟  02  01  201    220 2012-02-03
         1003  大宝  01  01  8     10  2011-01-01
         1002  哥弟2  02  02  200    222 2011-02-03
3、店面信息表 店面编号 店名  地址  
        01    1号
        02    2号
查询要求:按店面、商品类别,求本期与上年同期销售数据(日期节点为输入)
查出结果:1号店
     类别名 产品订价(本期)销售金额(本期)产品订价 销售金额(同期)
     日化  22        23       8    10   
     服装  201       220
一分析起来就是要按给定的日期,给定的店面求不同类别商品的在指定日期的销售金额及订价的和。
二是要将结果导出为EXCEL
不知道要涉及到什么控件及SQL语句要怎么写才能实现。求指导。

  
展开
 我来答
邦浅魔千
2012-07-10 · TA获得超过220个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:355万
展开全部
procedure QueryData(AStoreName: stirng; AStartDate, AEndDate: TDateTime);
var
BStartDate, BEndDate: TDateTime;
begin
BStartDate := incyear(AStartDate, -1);
BEndDate := incyear(AEndDate, -1);
with AdoQuery1 do
begin
Sql.Close;
Sql.Clear;
Sql.Add('select 类别名, 产品订价(本期), 销售金额(本期), ' +
' 产品订价(同期), 销售金额(同期) from ' +
' ((select 类别号, sum(产品订价) as 产品订价(本期), ' +
' sum(销售金额) as 销售金额(本期) from 销售信息表 ' +
' left join 店面信息表 on 店面号 = 店面编号 ' +
' where 店名 = AStoreName and ' +
' (销售日期 between AStartDate and AEndDate) group by 类别号)) tb1 ' +
' left join ' +
' (select 类别号, sum(产品订价) as 产品订价(本期), ' +
' sum(销售金额) as 销售金额(本期) from 销售信息表 ' +
' left join 店面信息表 on 店面号 = 店面编号 ' +
' where 店名 = AStoreName and ' +
' (销售日期 between BStartDate and BEndDate) group by 类别号)) tb2 ' +
' on tb1.类别号 = tb2.类别号) right join 商品类别信息表 ' +
' tb3 on tb1.类别号 = tb3.类别号')
Sql.Open;
end;
end;
导出到excel 你用dbgrideh
uses
DBGridEhImpExp

procedure ExportDataExcel;
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
if SaveDialog1.Execute then
begin
ExpClass := TDBGridEhExportAsXLS;
SaveDBGridEhToExportFile(ExpClass,dbgrideh1,
SaveDialog1.FileName,true);
end;
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b8e180e3
2012-07-10 · 超过18用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:48.3万
展开全部
首先建表1,2,3在Access, 这个字段命名尽量用英文,这个程序规范我就不多说了.
cxgrid. 有导出excel之函数.
写个存储过程,传参数到cxgrid 即可,导资料到excel
create procedure pro_seekSales (
@storeID varchar(10),@styleID varchar(10) @date1 datetime,@date2 datetime)
As
begin
select t2.* from tbl_sales t2 left join tbl_style t1 on t1.styleID=t2.styleID left join tbl_store t3 on t2.storeID=t3.storeID
where t2.dates between @date1 and @date2 and t2.storeID= @storeID
and t2.styleID= @goodstyle
end
解决思路大致如上,细节的算法自己try try....coding嘛毕竟还是要自己动手嘀.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式