类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
下面的这个例子是你csdn上的曾经的帖子,不过我在做的时候,一些地方不明白,请大家帮忙!
例从表中查询出:单位名称,本月收入,本月利润,要求数据按单位名称排序。
问题是:在本月收入及本月利润各后面插入一列收入排名、利润排名
例 单位名称,本月收入 收入排名 本月利润 利润排名
aa 50 2 10 1
bb 40 3 5 2
cc 60 1 4 3
排序的两列库表中是没有的,怎么根据前一列的数据计算出来。
---------------------------------------------------------------
编程
1、改变排序顺序(用收入,倒序)
2、for i = 1 to dw_1.rowcount()
dw_1.object.收入排名[i]=i
next
3、 改变排序顺序(用利润,倒序)
4、for i = 1 to dw_1.rowcount()
dw_1.object.利润排名[i]=i
next
5。改变排序顺序(单位名称,正序)
---------------------------------------------------------------
改变排序顺序(单位名称,正序)
用函数setsort(单位名称,a)?
忘了,你看看
---------------------------------------------------------------
最详细的方案:
在SELECT的时候加入两个计算列,
即你原来的select语句为:
SELECT name, 收入,利润 FROM table where ....
改成:
SELECT name, 收入,收入排名,利润, 利润排名 FROM table where ....
然后在DW中的RetrieveEnd()事件中编程:
long i
THIS.SetRedraw(false)
THIS.SetSort(收入排名 D)
THIS.Sort()
FOR i = 1 TO rowCount
THIS.Object.收入排名[i] = i
NEXT
THIS.SetSort(利润排名 D)
THIS.Sort()
FOR i = 1 TO rowCount
THIS.Object.利润排名[i] = i
NEXT
THIS.SetSort(单位 A)
THIS.Sort()
THIS.SetRedraw(TRUE)
---------------------------------------------------------------
加入两个计算列的方法错了,应该是:
在SELECT的时候加入两个计算列,
即你原来的select语句为:
SELECT name, 收入,利润 FROM table where ....
改成:
SELECT name, 收入,0 AS 收入排名,利润, 0 AS 利润排名 FROM table where ....
在数据源中加入计算列的原因是:
如果你在DW中加入text,无法每行设置值的。
如果在DW中使用计算列,无法在script中赋值。
对于"SELECT name, 收入,0 AS 收入排名,利润, 0 AS 利润排名 FROM table where .... " 语句,我用PB做时,总是报错.
在我的机子,用了一张表,其中只有三个字段:单位,收入,利润
在用数据源时,我选择了"sql select"
select table1.单位,
table1.收入,
table1.利润
from table1
现在我在select画板上加两个字段:收入的排名,利润排名
select table1.单位,
table1.收入,
0 as 收入的排名,
table1.利润,
0 as 利润排名
from table1
可是程序提示我有错误.请问一下,如何做才能加入去?
网友回答:
在数据窗sql语句中多加入一条“0 as 字段名,”应该不会出错的,直接加入就可以。
注意逗号用英文的,如果是最后一个字段,注意不要再加逗号。
如果原来数据窗sql语句没错,这样加也想不出还会有什么错误了