首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

SQL 怎么实现不连续数据分组统计

2013-04-26 
SQL 如何实现不连续数据分组统计?表test:datenumname-------------------------------------------------

SQL 如何实现不连续数据分组统计?
表test:
date                     num         name
------------------------------------------------- 
20130101             1             张三           
20130102             3             张三
20130103             3             李四
20130104             3             李四 
20130105             2             张三
20130106             2             王五


现在要求统计成:
date_min          date_max          num_sum      name
------------------------------ 
20130101         20130102              4               张三
20130103         20130104              6               李四
20130105         20130105              2               张三
20130106         20130106              2               王五


test中的 name不连续,如何用SQL操作实现要求的结果 ? 
[解决办法]

CREATE CURSOR TEST (DATE C(8),NUM N(1),NAME C(4))
CSTR=[20130101,1,张三;20130102,3,张三;20130103,3,李四;20130104,3,李四;20130105,2,张三;20130106,2,王五]
FOR I=1 TO ALINES(A,CSTR,[;])
    =ALINES(B,A(I),[,])
    INSERT INTO TEST VALUES (B(1),INT(VAL(B(2))),B(3))
ENDFOR
SELECT *,0 FL FROM TEST INTO CURSOR TEST1 READWRITE
NAME1=NAME
N=1
SCAN 
   IF NAME!=NAME1
      N=N+1
   ENDIF
   NAME1=NAME
   REPLACE FL WITH N
ENDSCAN
SELECT NAME,MIN(DATE),MAX(DATE),SUM(NUM),FL FROM TEST1 GROUP BY FL,NAME

热点排行