在使用Crystal Reports时,我遇到了将查询下推到SQL服务器的问题(我目前正在使用Crystal Reports 2013)。
如果我输入以下内容作为记录选择公式,Crystal将使用WHERE子句来选择记录:
{LINKAGE.ENTITY_ID_1} = 1 and
{LINKAGE.ENTITY_TABLE_1} = "ENT" and
{LINKAGE.ENTITY_TABLE_2} in ["DOC","PHO"]-给予-
SELECT "LINKAGE"."ENTITY_ID_1", "LINKAGE"."ENTITY_TABLE_1", "LINKAGE"."ENTITY_TABLE_2"
FROM "TESTING_DB"."dbo"."LINKAGE" "LINKAGE"
WHERE "LINKAGE"."ENTITY_ID_1"=1 AND "LINKAGE"."ENTITY_TABLE_1"='ENT' AND ("LINKAGE"."ENTITY_TABLE_2"='DOC' OR "LINKAGE"."ENTITY_TABLE_2"='PHO')如果我将‘硬编码’值改为使用变量,Crystal在选择记录时不再包含WHERE子句:
numbervar valueNumber := 1;
stringvar valueString := "ENT";
stringvar array valueArray := ["DOC","PHO"];
{LINKAGE.ENTITY_ID_1} = valueNumber and
{LINKAGE.ENTITY_TABLE_1} = valueString and
{LINKAGE.ENTITY_TABLE_2} in valueArray-给予-
SELECT "LINKAGE"."ENTITY_ID_1", "LINKAGE"."ENTITY_TABLE_1", "LINKAGE"."ENTITY_TABLE_2"
FROM "TESTING_DB"."dbo"."LINKAGE" "LINKAGE"从文档上看,这听起来不应该有什么问题,所以我不太确定我可能遗漏了什么。任何有见地的人都会非常感谢!
发布于 2018-08-13 22:53:34
我似乎已经在Crystal Reports用户指南中找到了答案。这里提到只有常量或参数值可以下推,而不能下推变量:
https://stackoverflow.com/questions/51805076
复制相似问题