统计报表(50分)

  • 主题发起人 主题发起人 lixue
  • 开始时间 开始时间
L

lixue

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个数据表cb,数据项有用户名,地址,日期,用电量,如何做个统计报表,
统计两个日期间的用电量,报表要有所有的数据项。
我设置了a,b两个日期变量,是另外一个form的public 变量, sql属性设置
如select * from cb where (日期>= :a) and(日期<= :b),错误如"query: field'a' is
an unknown type .不知怎么解决。
相信各位大侠有更好,更简洁的办法,请不吝赐教select * from cb where (日期>= :a) and(日期<= :b)
 
a,b没有设置原始类型吧!
 
a,b没有初始化。
 
在SLQ控件的TParams属性中设置a和b的DataType属性。
 
在设置了SQL语句之后,再通过Params,加上A,B两个参数就可以了.
 
select * from cb where 日期 between :a and :b
//------以下给参数赋值,同时决定类型
Query.ParamByName('a').AsDate:=...
Query.ParamByName('b').AsDate:=...
 
就是a,b的初始类型没设置,想当初我第一次用这样的SQL语句的时候是开发一个WEB SERVER
程序,没有调试环境,只能放在服务器上试,每天几百次的上载,删除,改名
往事不堪回首
对了,那时还不知道大富翁
哈哈
 
参数未赋值,只需在Open前加
Query.ParamByName('a').AsDate:=a;
Query.ParamByName('b').AsDate:=b;
 
感谢各位的帮忙,上次确实是参数类型的原因。奇怪的是我在下个form中,引用了参数e,f
功能与上次的一样,sql语句是 select * from first2 where (date>= :e)
and (date<= :f) 。却出错了。
错误是 invaild use of keyword
token: date>=
line number: 1

不知哪错了,请多多指教
 
我也老出现这个问题,我的理解是表中没有索引,或主键,我从DBF表导入数据时,总出这个问题
因为DBF表的索引在外面设置的
加个主键就解决了。
 
DATE是SQL的保留字,把字段名改为其他的吧,不要用DATE。
 
sqlstr:='select * from cb where 日期 between #'+sqldate1+'# and #'+sqldate2+'#'
 
多人接受答案了。
 
后退
顶部