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
这样在运行报表的时候会提示输入两个时间变量,类似如下图所示:
![](http://hi.csdn.net/attachment/201011/8/0_1289214255e78Z.gif)
运行报表后的结果如下:
-----end----
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
这样在运行报表的时候会提示输入两个时间变量,类似如下图所示:
![](http://hi.csdn.net/attachment/201011/8/0_1289214255e78Z.gif)
运行报表后的结果如下:
用户名 | 彩种 | 投注额 | 排名 |
用户名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----
相关文章推荐
- 泛型约束where条件的使用(可以通过类型参数动态反射创建实例)
- 动态SQL文中where条件是IN,而导入的参数个数不确定的情况(亲自实践)
- SQL语句Where中使用别名作为判断条件
- 献给所有cognos新手 关于 : 基于维度(cube)建立的报表的过滤条件参数 解决OP-ERR-0217 问题
- 通过 spring/web services 调用 jdbcTemplate sql参数没填写出现的错误提示
- sql总结之 被作为where过滤条件的字段 ,其值也是可以被更新的
- SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
- SQL写存储过程时参数作为条件的技巧
- 一步步学习Reporting Services(二) 在报表中使用简单的参数作为查询条件
- 使用ADF-BC 实现查询功能之四:通过代码动态设置Where条件参数
- sql:case when的各种用法及怎么把case when放在where里面作为条件表达式
- Mysql下SELECT的结果集作为UPDATE的WHERE条件时的SQL语法
- sql 存储过程参数为空则不作为条件
- SQL语句Where中使用别名作为判断条件
- 一条SQL把两列的值通过函数得出另一个值时如何把它作为这条SQL的判断条件。
- 通过where 作为swith的条件
- sql 自定义函数 ,where后拼接条件跳转语句,实现可变参数查询
- 关于sql条件语句where id in (@参数)执行报错问题(转换成数据类型 int 时失败)(
- Mybatis中通过HaseMap封装参数作为查询条件
- SQL语句Where中使用别名作为判断条件