我的水晶报告没有创建" where子句"在它的" sql查询"。
在我的"记录选择公式"我称之为改变日期时间的公式: {@starttime}
ShiftDateTime ({MYLABOR.STARTED}, "GMT,0","");
***如果我用数据库中的实际StartTime字段替换{@StartTime},那么我得到我的" where子句"报告非常快。
任何人都知道为什么该公式会停止" where子句"从生成?
这是我的"记录选择forumal":
{@StartTime} >= {?FirstPeriodStartDate}
and
{@StartTime} <= dateadd("d",14,({?FirstPeriodStartDate}))
答案 0 :(得分:0)
Crystal没有将这个逻辑添加到WHERE子句中,因为ShiftDateTime
是一个Crystal函数而不是数据库可以使用的有效函数。基本上,Crystal不知道如何将其转换为有效的SQL。当您在记录选择公式中的数据库字段上使用Crystal函数时,几乎总是如此。
所以在这种情况下发生的事情是Crystal离开WHERE子句逻辑并从数据库获取所有记录然后在本地应用选择...这就是为什么你看到如此剧烈的性能减慢;无论转班开始时间如何,您都会从数据库中获取所有记录。