query1.SQL.Add('where 入库时间<=:Start and 入库时间>=:End');
query1.Params[0].AsDateTime := StrToDateTime(Edit1.Text);
query2.Params[1].AsDateTime := StrToDateTime(Edit2.Text);
...
query1.Params[0].AsDateTime := StrToDateTime(Edit1.Text);
query2.Params[1].AsDateTime := StrToDateTime(Edit2.Text);
...
解决方案 »
- 请教:delphi7 按F9运行报错.
- 初学者提问
- 连接informix数据库,为何查询速度奇慢
- 如果定义一个DLL的导出函数中..
- 如何不用Delphi的控件进行录音?
- 关于TCPServer&TCPClient的问题,100分,请教了。
- 求救!!!我快疯了?
- 关于屏幕保护的问题?
- 再次提问加100分。用DELPHI如何编写ISAPI过滤器(IIS)
- 为什么我的可用分有几千分,可是在这里只能最多给22分呀!!!!!????
- 以前用ADO+delphi+access 2000开发本地的数据库系统,后来听朋友说,现在B/S型的数据库系统很有前途,大虾介绍一下关于B/S三层数据库系统
- DComConnection连接问题!
query1.Params[0].AsDateTime := StrToDateTime(Edit1.Text);
query1.Params[1].AsDateTime := StrToDateTime(Edit2.Text);
我把代码改为此还不行啊?
query1.SQL.Add('select 入库时间,sum(入库重量)');
query1.SQL.Add('from 代存原粮入库单');
query1.SQL.Add('where 入库时间<=:edit3.text and 入库时间 >=:edit2.text');
query1.Params[0].AsDateTime := StrToDateTime(Edit3.Text);
query1.Params[1].AsDateTime := StrToDateTime(Edit2.Text);
query1.Prepare;
query1.Open;
看看行不行
不对啊,你怎么不改
你改了吗?如果不好使,在sql里执行一下sql语句!
有下面两种方法供您参考:
select 入库时间,sum(重量总和) from 代存原粮入库单 where
入库时间>'02/22/2002' and 入库时间<'05/25/2002' group by 入库时间select 入库时间,sum(重量总和) from 代存原粮入库单 where
入库时间 in (select 入库时间 from 代存原粮入库单 where 入库时间>'02/22/2002' and 入库时间<'05/25/2002' )在实际使用中,把"入库时间<'05/25/2002'"换成您想使用的时间就可以了,注意的是,时间的格式最好使用字符 月/日/年 的格式
Edit1.text:=query1.fieldbyname('重量总和').asinteger;
错误是:incompatible types:'string'and 'integer'
query1.close;
query1.sql.clear;
query1.SQL.Add('select convert(varchar,入库时间,2) as 入库时间,sum(入库重量) as 总和');
query1.SQL.Add('from 代存原粮入库单');
query1.SQL.Add('where
datediff(day,入库时间,:frm)<=0
and datediff(day,入库时间,:TO)>=0
group by convert(varchar,入库时间,2) ');
query1.parambyname('frm').asdatetime:=strtodatetime(edit2.text);
query1.parambyname('to').asdatetime:=strtodatetime(edit3.text);
query1.Prepare;
query1.Open;
edit1.text:=query1.fieldbyname('总和').asstring;
第一句改为query1.sql.add('select 入库时间,sum(入库重量) as 重量总和');Edit1.text:=query1.fieldbyname('重量总和').asinteger;
看看行不行
可说错误是:
改了可说错误是没:
重量总和字段啊
query1.SQL.Add('from 代存原粮入库单');
query1.SQL.Add('where 入库时间<=:start and 入库时间 >=:end');
query1.Params[0].AsDateTime := StrToDateTime(Edit3.Text);
query1.Params[1].AsDateTime := StrToDateTime(Edit2.Text);
query1.Prepare;
query1.Open;
//start end是参数
begin
Close;
SQL.Clear;
SQL.Add('Select 入库时间,sum(入库重量)');
SQL.Add('From 代存原粮入库单');
SQL.Add('Where 入库时间 between :StartDate and :EndDate');
SQL.Add('Group by 入库时间');
SQL.Add('Order by 入库时间');
ParamByName('StartDate').asDateTime:=StrToDateTime(Edit2.Text);
ParamByName('EndDate').asDateTime:=StrToDateTime(Edit3.Text);
Open;
end;
select acutalamount as SAC from Demotable
where datediff(day,startdatetime,enddatetime)>=30汇总一个月的某个列值
query1.close;
query1.sql.clear;
query1.SQL.Add('select sum(入库重量) ');
query1.SQL.Add('from 代存原粮入库单 ');
query1.SQL.Add('where 入库时间<='''+edit3.text+''' and 入库时间>='''+edit2.text+'''');
showmessage(query1.sql.text);//在这里检查一下是不是你所需要的SQL语句
query1.Prepare;
query1.Open;if query1.recordcount=0 then exit;
edit1.text:=query1.fields[0].asstring;
end;注意各个空格!
我不明白???
?????????我这样改后:
query1.close;
query1.sql.clear;
query1.sql.add('select sun(入库重量) from table where 入库日期 between :da1 and :da2');
query1.parabyname('da1').asdatetime:=StrtoDatetime(edit1.text);
query1.parabyname('da2').asdatetime:=StrtoDatetime(edit2.text);
query1.open;
Edit3.text:=formatfloat('0.00',query1.fields[0].AsFloat);
编辑能通过
可在edit1和edit2中输入2002-2-4和2002-5-3后按button后
出来错误是:invalid use of keyword
你的QQ能说出来
我和你交流吗我的QQ81676032