我工作的公司使用MacolaES作为ERP系统。 SQL Server数据库的结构使得当事情不再被视为活动时,它们从一组“活动”表移动到一组“历史”表。这有助于将“活动”表保持得足够小,以便查询快速返回。另一方面,历史表是巨大的。适当的列在这些表中编入索引,如果您查询特定的内容,它会很快返回。Crystal Reports参数化查询
问题在于当您制作Crystal Report时,它会提示用户输入参数。由于我不知道的原因,Crystal参数没有被转换为SQL参数,所以最终会有查询选择订单标题历史记录表内部的所有内容连接到订单行历史记录表中的所有内容,这会导致超过800万行。
有没有办法让Crystal Reports使用SQL查询中的参数,而不是在事件之后加载所有记录和过滤?我读过一个存储过程应该工作的地方,但我很好奇,如果一个普通的参数化查询可以节省我的时间。
这里是选择公式:
(
trim({Orderheader.ord_no}) = {?Order No}
)
and
(
{Orderheader.ord_type} = 'O'
)
and
(
{orderlines.ord_type} = 'O'
)
它取决于记录选择公式的类型以及它是否可以转换为sql where子句。你是否使用任何不会像'if'或任何水晶函数那样转换为sql的特殊运算符? – dotjoe 2010-01-29 15:49:20
不,只是使用布尔AND。 – Scott 2010-01-29 15:59:24
您是否尝试将配方从配方中移除? – 2010-02-01 18:49:49