一句统计代码问题,大侠请进。。。。。。。 本帖最后由 he59195 于 2012-03-12 15:55:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TFormbstj.BitBtn2Click(Sender: TObject);var s99,tj:string;begin tj:=combobox3.text; //单击此处列出网点名称,我是按网点名称和日期段统计的 if (rbwd.Checked)and(combobox3.Text<>'') then s99:='select * from jl where 网点名称 ="'+tj+'" '; // adoquery1.sql.add('select 姓名 sum(合计) from jl 网点名称 ="'+tj+'" and 笔数时间>=#'+datetostr(r1.date)+'# and 笔数时间<=#'+datetostr(r2.date)+'#'); with adoquery1 do begin close; sql.clear; sql.Add(s99); try open; except adoquery1.execsql; end;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add( 'SELECT SUM(合计) FROM jl where 网点名称 ="'+tj+'" and 笔数时间>=#'+datetostr(r1.date)+'# and 笔数时间<=#'+datetostr(r2.date)+'# ');ADOQuery1.Open;EDIT1.TEXT:=adoquery1.Fields[0].AsString;statusbar1.Panels[1].Text:=' 当前统计的网点名称为: '+combobox3.text+' 共计笔数: '+edit1.text+' 笔 ';MessageBox(handle, '恭喜你,统计成功!', '提示', mb_IconWarning + mb_Ok);ADOQuery1.SQL.Clear;ADOQuery1.close;ADOQuery1.close;adoquery1.sql.add('select 姓名,网点名称,sum(合计) as 合计笔数,sum(合计) as 平均笔数,网点编号,柜员号,身份证号 from jl where 网点名称 ="'+combobox3.text+'" and 笔数时间>=#'+datetostr(r1.date)+'# and 笔数时间<=#'+datetostr(r2.date)+'# group by 姓名,'','',网点名称,网点编号,柜员号,身份证号 ');//下面是点了统计后设置各列的宽度adoquery1.Active :=true;dbgrid1.datasource :=datasource1;DBGrid1.Columns.Items[0].Width := 74 ;DBGrid1.Columns.Items[1].Width := 80 ;DBGrid1.Columns.Items[2].Width := 60 ;DBGrid1.Columns.Items[3].Width := 90 ;DBGrid1.Columns.Items[4].Width := 80 ;DBGrid1.Columns.Items[5].Width := 90 ;DBGrid1.Columns.Items[6].Width := 135 ; ADOQuery1.Open;end;end;我贴出代码了,望各位帮我完善一下 sum(合计)/30 as 每月平均这是对的, 变量方式var i:integer;sum(合计)/'+IntToStr(i)+' as 每月平均 adoquery1.Active :=true;dbgrid1.datasource :=datasource1;DBGrid1.Columns.Items[0].Width := 74 ;DBGrid1.Columns.Items[1].Width := 80 ;DBGrid1.Columns.Items[2].Width := 60 ;DBGrid1.Columns.Items[3].Width := 90 ;DBGrid1.Columns.Items[4].Width := 80 ;DBGrid1.Columns.Items[5].Width := 90 ;DBGrid1.Columns.Items[6].Width := 135 ; ADOQuery1.Open;程序有问题啊,,ACTIVE=TRUE后还能OPEN? RoundTo(0.123111,-2)结果为0.12引用 uses math roundto(sum(合计)/'+IntToStr(i)+',-2) as 平均笔数 加了引用MATH 这里改成这样,说函数未定义 引用 uses math、、这个单元啊,,, round(sum(合计)/'+IntToStr(i)+'),2) as 每月平均//记错了,,一时忘了是在SQL 语句中的,只需上面的就可以了 case5166有QQ吗?我的是1185394991 加一下吧,QQ方便些 循环问题 路过的看下有益无害的 如何判断数组数据记录重复! 一个讨论,没有可用分给大家了.不好意思.●●windows上,如何以最快的速度在屏幕上画一点? 汇编?用DirectX? 你认为呢?●● 紧急求援!!如何解决输入的上标和下标问题,如:2的3次方,2的下标为4。 一个关于动态报表的问题 dll文件的路径 服务器支持http get和http post,向服务器批量发送url,如何实现不等待返回直接提交? 要通过FTP取得一个文件,DELPHI中有控件么? Delphi中如何处理消息 线程的小问题 求几本通熟易懂的delphi教程
var
s99,tj:string;
begin tj:=combobox3.text; //单击此处列出网点名称,我是按网点名称和日期段统计的 if (rbwd.Checked)and(combobox3.Text<>'') then
s99:='select * from jl where 网点名称 ="'+tj+'" ';
// adoquery1.sql.add('select 姓名 sum(合计) from jl 网点名称 ="'+tj+'" and 笔数时间>=#'+datetostr(r1.date)+'# and 笔数时间<=#'+datetostr(r2.date)+'#');
with adoquery1 do begin
close;
sql.clear;
sql.Add(s99);
try
open;
except
adoquery1.execsql;
end;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add( 'SELECT SUM(合计) FROM jl where 网点名称 ="'+tj+'" and 笔数时间>=#'+datetostr(r1.date)+'# and 笔数时间<=#'+datetostr(r2.date)+'# ');ADOQuery1.Open;
EDIT1.TEXT:=adoquery1.Fields[0].AsString;
statusbar1.Panels[1].Text:=' 当前统计的网点名称为: '+combobox3.text+' 共计笔数: '+edit1.text+' 笔 ';
MessageBox(handle, '恭喜你,统计成功!', '提示', mb_IconWarning + mb_Ok);
ADOQuery1.SQL.Clear;
ADOQuery1.close;ADOQuery1.close;
adoquery1.sql.add('select 姓名,网点名称,sum(合计) as 合计笔数,sum(合计) as 平均笔数,网点编号,柜员号,身份证号 from jl where 网点名称 ="'+combobox3.text+'" and 笔数时间>=#'+datetostr(r1.date)+'# and 笔数时间<=#'+datetostr(r2.date)+'# group by 姓名,'','',网点名称,网点编号,柜员号,身份证号 ');
//下面是点了统计后设置各列的宽度
adoquery1.Active :=true;
dbgrid1.datasource :=datasource1;
DBGrid1.Columns.Items[0].Width := 74 ;
DBGrid1.Columns.Items[1].Width := 80 ;
DBGrid1.Columns.Items[2].Width := 60 ;
DBGrid1.Columns.Items[3].Width := 90 ;
DBGrid1.Columns.Items[4].Width := 80 ;
DBGrid1.Columns.Items[5].Width := 90 ;
DBGrid1.Columns.Items[6].Width := 135 ;
ADOQuery1.Open;
end;
end;我贴出代码了,望各位帮我完善一下
DBGrid1.Columns.Items[0].Width := 74 ;
DBGrid1.Columns.Items[1].Width := 80 ;
DBGrid1.Columns.Items[2].Width := 60 ;
DBGrid1.Columns.Items[3].Width := 90 ;
DBGrid1.Columns.Items[4].Width := 80 ;
DBGrid1.Columns.Items[5].Width := 90 ;
DBGrid1.Columns.Items[6].Width := 135 ;
ADOQuery1.Open;程序有问题啊,,ACTIVE=TRUE后还能OPEN?
RoundTo(0.123111,-2)
结果为0.12
引用
uses math
roundto(sum(合计)/'+IntToStr(i)+',-2) as 平均笔数 加了引用MATH
这里改成这样,说函数未定义
uses math、、这个单元啊,,,
有QQ吗?我的是1185394991 加一下吧,QQ方便些