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

PB dw 自动根据选择列汇总,该怎么处理

2012-03-14 
PB dw 自动根据选择列汇总我想做个数据分析的通用模板,比如设计个表格“A”,字段分别为“列1,列2,列3,列4,值1

PB dw 自动根据选择列汇总
我想做个数据分析的通用模板,比如设计个表格“A”,字段分别为“列1,列2,列3,列4,值1,值2,值3,值4”。比如用户选择了“列2,列3,值1,值2”,那么DW自动显示汇总的结果(替换成语句为:select 列2,列3,sum(值1) 值1,sum(值2) 值2 from A group by 列2,列3)

怎样根据用户自动选择列DW而显示不同自动汇总的结果,请各位大虾们指点下!

[解决办法]

C/C++ code
string ls_sqlstring error_syntaxfromSQL, error_createstring ls_syntaxlong ils_sql = "select 列2,列3,sum(值1) 值1,sum(值2) 值2 from A group by 列2,列3"ls_syntax = sqlca.SyntaxFromSQL(ls_sql, 'Style(Type=Grid)', error_syntaxfromSQL)IF Len(error_syntaxfromSQL) > 0 THEN    messagebox("",'生成数据存储语法发生错误!~r~n错误原因:' + error_syntaxfromSQL)    return -1ELSE    dw_1.Create(ls_syntax, error_create) //dw_1就是你要显示数据的数据窗口    IF Len(error_create) > 0 THEN        messagebox('', '建立数据存储时发生错误!~r~n错误原因:' + error_create)        return -1    END IFEND IFdw_1.retrieve()
[解决办法]
使用动态数据窗口技术

涉及到pb函数有
1. SyntaxFromSQL
2. create

功能实现
1. 首先你要区分 选择的列的类型 ,是分组列,还是汇总列(或者是选择列时标记是汇总用的,还是分组用的)
列1,列2,列3,列4 分组列
值1,值2,值3,值4 汇总列

2. 选择列后,你需要把选择出的分组列 罗列出来 ,拼接成串 X , 类似 列2,列3

把选择出的数据列 罗列出来 ,拼接成串 Y , 类似 sum(值2),sum(值3) 

3. 拼接SQL语句 select + X + y from 表 group by X

4. 创建数据窗口

热点排行