您的位置:首页 > 数据库

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

2010-11-08 19:14 295 查看
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

 

 

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

 

 



 

运行报表后的结果如下:

 

 

用户名彩种投注额   排名
用户名1彩种13,2361
用户名2彩种12,2362
用户名3               彩种11,9643
用户名4彩种214,976         1
用户名5彩种29,5242
用户名6彩种2           1,0123
 
 

 

 

 

 

-----end----

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  报表 sql date report 2010
相关文章推荐