|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
我想问下大家,如果我在FM里的SQL
where SEARCHTIME >= to_date(#prompt('time1','string')#,'yyyymmdd')
and SEARCHTIME<= to_date(#prompt('time2','string')#,'yyyymmdd')
and MONITOR_TYPE IN ( #promptmany ( 'monitor_type','string' )# )
and SEARCHSTR_TYPE in ( #promptmany ( 'SEARCHSTR_TYPE','string' )# )
and SEARCHSTR_GRADE1 in ( #promptmany ( 'SEARCHSTR_GRADE1','string' )# )
and SEARCHSTR_GRADE2 in ( #promptmany ( 'SEARCHSTR_GRADE2','string' )# )
这样写
和
不在SQL里加WHERE条件
然后在report里去添加筛选条件
假如出来的结果是一样的,是不是在SQL加条件速度会快很多?
是不是如果条件是加在SQL里,那么在报表运行的时候会将这些WHERE条件发送到数据库里,出来的结果集会少?
如果条件是在report里添加的,那么从数据库里出来的结果集就是SQL不加WHERE条件的结果集。这个结果集出来后再在前端按条件筛选?
还请大家解答下
并且在SQL加WHERE条件是不是在运行报表的时候这些变量一定要赋值,可不可以有办法选择性的赋值,也就是说我想赋值的地方就填值,不想填值的地方就相当于WHERE条件没有这一项呢?如果有的话,请问怎么设置呢?十分感谢大家。。。
我来回答:
1.在FM里写where条件和在report里写where,哪一个的速度更快很难说。因为report里也会产生SQL(带有where条件),这样从数据库取出来的结果集就跟FM里写where条件是一样的。
2.在Filter的选项里有一个required/option的选项,选了option,就相当于WHERE条件没有这一项 |
|