我没招了。。。请教个DataWindow.Describe()的问题

bapi 2006-07-13 01:42:17
假设某DataWindow中有以下数据,在不分组的情况下,怎样使用Describe函数取得各个不同<fClsNo>字段下最大的<fValue>?

fRowId fClsNo fValue
1 '001' 1
2 '001' 2
3 '001' 3
4 '002' 1
5 '002' 2

当我们想取得所有<fClsNo>中最大的<fValue>时可用以下代码:
Describe("Evaluate('max(fClsNo for all)',1)")

但如果要取得指定的某个<fClsNo>中最大的<fValue>应该怎么写?例如想取得fClsNo='001'的所有记录中最大的fValue值(也就是第3行),我试过类似以下的代码,但是系统提示无效的分组,不知道是我写的表达式有问题,还是说PB本身不支持这种语法:
Describe("Evaluate('max(fClsNo for fClsNo=~~'001~~')',1)")

折腾了半天没个结果,请高手来指点一下,注意问题的前题是不能在DataWindow中创建分组,因为我可以通过遍历所有记录来取得这个值,所以如果一定要通过分组才能解决的话那就没有必要了
...全文
416 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bapi 2006-07-14
  • 打赏
  • 举报
回复
lzheng2001(1加1)的方法经测试后确认可行,非常感谢~~
lxf31 2006-07-13
  • 打赏
  • 举报
回复
睡前帮你顶帖
orcd 2006-07-13
  • 打赏
  • 举报
回复
关注
圣殿骑士18 2006-07-13
  • 打赏
  • 举报
回复
估计不分组不行吧
jackiecheng001 2006-07-13
  • 打赏
  • 举报
回复
js
leio 2006-07-13
  • 打赏
  • 举报
回复
过滤一下,然后再取最大值
dw_1.setfilter("fClsNo='001'")
dw_1.filter()
....Describe.....
lzheng2001 2006-07-13
  • 打赏
  • 举报
回复
如果不分组可以试试以下方法,应该行的.
假设 fValue >= 0
max( if ( fClsNo='001',fValue,0 ) )

如果fvalue 可能为负数则:

max( if ( fClsNo='001',fValue, -2147483648 ) )

doodle 2006-07-13
  • 打赏
  • 举报
回复
好象不分组是不行的。
你必须用describe吗?如果是数据库中的数据,可以用sql取出来

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧