Проблема с ColdFusion Query of Query после обновления сервера ColdFusion с CF9 до CF21

Я не могу понять это. Моя компания недавно обновила наш сервер ColdFusion с CF9 до CF2021. Одна из моих страниц использует запросы запросов для запуска. До обновления страница работала нормально. Однако после обновления запрос запроса, где оператор не возвращает никаких результатов. Даже если в исходном запросе есть данные. Данные поступают из источника данных 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 = original_query_result и пытаюсь получить общее количество для отображения в каждой строке в моей выходной таблице сетки.

Любая помощь будет принята с благодарностью. Я пытаюсь понять это уже больше недели.

1 ответ

Я видел что-то подобное некоторое время назад и нашел этот пост:

https://web.archive.org/web/20180210052449/http://blog.dkferguson.com/index.cfm/2010/2/17/Using-Querie-of-Queries-with-CFDirectory

В основном мне пришлось CAST дату и использовать cfqueryparam (как и вы):

      SAMPLE_DATE = CAST(<cfqueryparam value="#original_query_result.SAMPLE_DATE#" cfsqltype="CF_SQL_DATE"> AS date)

В сообщении говорилось, что они должны бросить обе стороны, но я не нашел этого.

Другие вопросы по тегам