当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
其它和前例一样,但遍历代码如下:


CREATE COMPUTE MODULE flow_Compute
    
CREATE FUNCTION Main() RETURNS BOOLEAN
    
BEGIN
        
-- 员工总数
        DECLARE Count INTEGER 0;
        
-- 得到XML中员工总数
        SET Count=CARDINALITY(InputRoot.XML.employees.employee[]);
        
        
-- 员工姓名汇总
        DECLARE Names CHARACTER;
        
SET Names='';
                
        
-- 最大年龄
        DECLARE MaxAge INTEGER 0;
        
        
-- 年龄合计
        DECLARE SumAge INTEGER 0;
        
        
-- 当前年龄
        DECLARE CurrAge INTEGER 0;
        
        
-- 循环变量        
        FOR CurrItem AS InputRoot.XML.employees.employee[] DO
            
-- 字符串拼接 
            SET Names=Names || CurrItem.name ;
            
SET Names=Names || ',';
            
            
-- 字符串转换成整数再进行年龄合计 
            SET CurrAge = CAST(CurrItem.age AS INTEGER);
            
SET SumAge=SumAge+CurrAge;
            
            
-- 得到最大年龄
            IF MaxAge<CurrAge THEN
                
SET MaxAge=CurrAge;
            
END IF;
        
END FOR;
        
        
        
-- 平均年龄
        DECLARE AvgAge FLOAT;
        
SET AvgAge=SumAge/Count;
        
        
-- 拼接输出XML
        SET OutputRoot.XML.summary.count=Count;
        
SET OutputRoot.XML.summary.names=Names;
        
SET OutputRoot.XML.summary.maxAge=MaxAge;
        
SET OutputRoot.XML.summary.avgAge=CAST(AvgAge AS CHARACTER);
        
        
RETURN TRUE;
    
END;

END MODULE;

相比较而言,这种方式更简洁方便。

下载地址:
http://www.blogjava.net/Files/heyang/ESqlTest0920_02.rar
posted on 2011-09-21 11:29 何杨 阅读(736) 评论(0)  编辑  收藏 所属分类: WMB

只有注册用户登录后才能发表评论。


网站导航: