我想不通。我公司最近将我们的ColdFusion服务器从CF9升级到CF2021。我的一个页面使用查询的查询来运行。升级之前,页面运行良好。但是,在升级后,查询where语句的查询不会返回任何结果。即使原始查询具有数据。数据来自DB2数据源,以防在新版本中发生更改。
<cfquery name = "query_data_sample" dbtype="query">
SELECT
SAMPLE_DATE
, SAMPLE_NBR
, SAMPLE_MISC_NBR
, SUM (RECD_QTY) AS TTL_RECD_QTY
, SUM (MISC_QTY_1) AS TTL_MISC_QTY_1
, SUM ( 1 ) AS TTL_COUNT
FROM original_query_result
WHERE 1=1
AND SAMPLE_DATE = <cfqueryparam value = "#original_query_result.SAMPLE_DATE#" cfsqltype = "CF_SQL_DATE">
AND SAMPLE_NBR = <cfqueryparam value = "#trim(original_query_result.SAMPLE_NBR)#" cfsqltype = "CF_SQL_CHAR">
AND SAMPLE_MISC_NBR = <cfqueryparam value = "#trim(original_query_result.SAMPLE_MISC_NBR)#" cfsqltype = "CF_SQL_CHAR">
GROUP BY
SAMPLE_DATE
, SAMPLE_NBR
, SAMPLE_MISC_NBR
</cfquery>
当我注释掉AND语句并转储上面的查询时,我可以看到original_query_result的输出以及所有TTL值和Sample行。但是,如果我只想用AND语句获取一行,那么查询返回为未找到该行。我正在执行一个cfoutput query=original_query_result,并试图获得要显示在输出网格表中每行上的总量。
如有任何帮助,我们将不胜感激。我已经想了一个多星期了。
我不久前看到了类似的东西,并发现了这篇文章:
https://web.archive.org/web/20180210052449/http://blog.dkferguson.com/index.cfm/2010/2/17/Using-CFDirectory 查询
基本上,我必须计算日期并使用cfqueryparam(就像你一样(:
SAMPLE_DATE = CAST(<cfqueryparam value="#original_query_result.SAMPLE_DATE#" cfsqltype="CF_SQL_DATE"> AS date)
帖子说他们必须两面都投,但我没有发现。