回 帖 发 新 帖 刷新版面

主题:[投票]GIRD问题

数据表中有2006年 2007年 2008年 的具体日期的数据

为什么当按时间段查询时,比如2007年6月1日~2008年2月2日时间段,GRID中显示的数据按日期降序排列没有问题,而在数据统计的时候却无法显示。 但是如果不跨年度统计就没有任何问题。

请问问题出在哪儿?

SELECT 数据.日期,数据.金额 FROM 数据 WHERE 姓名=Q AND 日期>=THISFORM.TEXT1.VALUE AND 日期<=THISFORM.TEXT2.VALUE ORDER BY 日期 ASC INTO CURSOR MYLIST
   THISFORM.GRID1.RECORDSOURCE='MYLIST'
   THISFORM.GRID1.REFRESH
   

   n=0
   SCAN FOR 数据.姓名=Q AND 数据.日期>=THISFORM.TEXT1.VALUE AND 数据.日期<=THISFORM.TEXT2.VALUE
   n=n+金额
   ENDSCAN
   THISFORM.TEXT4.VALUE=n 

回复列表 (共3个回复)

沙发

1. SQL语句中,尽量避免使用属性,最好以变量代替
2. 变量名,不要使用单字母,或其他容易混淆的名字,最好是字母,下划线,数字的混合体
3. 统计完全可以使用 SUM .... TO .... 而没必要SCAN
4. SCAN 的时候,要注意哪个表是当前表.
[quote]local t1,t2,t3
t1=THISFORM.TEXT1.VALUE
t2=THISFORM.TEXT2.VALUE
SELECT 日期,金额 FROM 数据 WHERE 姓名=Q AND between(日期,t1,t2) ORDER BY 1 INTO CURSOR MYLIST
   THISFORM.GRID1.RECORDSOURCE='MYLIST'
   THISFORM.GRID1.REFRESH
sum 金额 to t3   
THISFORM.TEXT4.VALUE=t3[/quote]

板凳

SUM FOR 数据.姓名=Q AND BETWEEN(数据.日期,THISFORM.TEXT1.VALUE,THISFORM.TEXT2.VALUE) To 变量

3 楼

LOCAL t1,t2
WITH THISFORM
t1=.TEXT1.VALUE
t2=.TEXT2.VALUE
SELECT 日期,金额 FROM 数据 WHERE 姓名=Q AND BETWEEN(日期,t1,t2) ORDER BY 1 INTO CURSOR MYLIST
   .GRID1.RECORDSOURCE=.null.
   .GRID1.RECORDSOURCE='MYLIST'
   .GRID1.REFRESH
SUM FOR 数据.姓名=Q AND BETWEEN(日期,t1,t2) TO .TEXT4.VALUE
ENDWITH

我来回复

您尚未登录,请登录后再回复。点此登录或注册