cognos8通过sql制作报表---where条件作为提示参数

author:skate
time:2010/11/08

 

在用cognos8的report studio通过sql制作报表的时候,如果想在where后面的条件,在运行报表前需要作为参数提示输入,以达到交互,可以用函数prompt

 

 

语法:prompt提示输入函数。

prompt ( prompt_name , datatype , defaultText , text , queryItem , trailing_text )

提示用户输入单个值。只需 prompt_name 自变量。未指定时,数据类型默认为字符串。指定默认文本时,提示是可选的。指定文本后,
文本会在值前面。可以指定 queryItem 以利用查询项目的“Prompt Info”属性。指定 trailing_text 后,trailing_text 会附加到值的后面。

 

 

 

例子:

 

SELECT username "用户名",lottery_name "彩种",money "投注额" ,money_sort "排名" FROM (
select a.username, a.lottery_name,money,row_number() over(PARTITION BY a.lottery_name ORDER BY a.money DESC) AS money_sort
FROM (
SELECT  t.username, l.lottery_name,SUM(t.money) money from A t ,  B  l
WHERE t.state=4
AND l.id=t.lottery_id
AND t.buy_time>to_date(#prompt('begintime(例如:2010-11-01)')#, 'yyyy-mm-dd hh24:mi:ss')
AND t.buy_time<to_date(#prompt('endtime(例如:2010-11-05)')#, 'yyyy-mm-dd hh24:mi:ss')
AND t.lottery_id IN (67,74)
GROUP BY l.lottery_name,t.username
) a
)
WHERE money_sort < 4

 

 

这样在运行报表的时候会提示输入两个时间变量,类似如下图所示:

 

 

cognos8通过sql制作报表---where条件作为提示参数_第1张图片

 


运行报表后的结果如下:

 

 

用户名 彩种 投注额   排名
用户名1 彩种1 3,236 1
用户名2 彩种1 2,236 2
用户名3               彩种1 1,964 3
用户名4 彩种2 14,976         1
用户名5 彩种2 9,524 2
用户名6 彩种2           1,012 3
 

 

 

 

 

 

-----end----

 

 

 

 

 

 

你可能感兴趣的:(sql,Date,report,报表,2010)