统计原码,请高手看看!

liulhj 2004-07-10 05:01:16
表1:employee的字段:
dept_name (部门)
dgroup (科组)
name (员工姓名)
work_number(工号)
表2:pay_detail的字段:
work_number(工号)
name (员工姓名)
total(工资)

选好科组,再选一个时间段(一个月),统计月工资. date(日期)

procedure TForm1.Button1Click(Sender: TObject);
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select a1.dept_name, a1.dgroup,a1.name,a1.work_number,sum(a2.total) as stotal from pay_detail a2,employee a1 where a2.work_number=a1.work_number and a1.dgroup=:dgroup and a2.date between :date1 and :date1 group by a1.dgroup,a1.name,a1.work_number ');
Params[0].DataType := ftdate;
Params[0].ParamType:= ptInput;
Params[0].value:=MaskEdit1.Text;

Params[1].DataType := ftdate;
Params[1].ParamType:= ptInput;
Params[1].value:=MaskEdit2.Text;

Params[2].DataType := ftstring;
Params[2].ParamType:= ptInput;
Params[2].value:=DBlookupcombobox1.keyvalue;
Prepare;
Open;
end;
end;
...全文
92 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kl2000 2004-07-10
  • 打赏
  • 举报
回复
楼主: 你的参数付值有误;改为如下应该可以!
Params[1].DataType := ftdate;
Params[1].ParamType:= ptInput;
Params[1].value:=MaskEdit1.Text;

Params[2].DataType := ftdate;
Params[2].ParamType:= ptInput;
Params[2].value:=MaskEdit2.Text;

Params[0].DataType := ftstring;
Params[0].ParamType:= ptInput;
Params[0].value:=DBlookupcombobox1.keyvalue;
觉得以上的方式不是很好;
ParamByName('dgroup').Value := DBlookupcombobox1.keyvalue;
ParamByName('date1').Value := MaskEdit1.Text;
ParamByName('date2').Value := MaskEdit2.Text;


sankis 2004-07-10
  • 打赏
  • 举报
回复
你这段代码是有错误还是怎么地??

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧