Ошибка неверный список выбора по запросу?

У меня есть три запроса:

<cfquery datasource="Intranet" name="getNotApproved">
  select submitterdept, COUNT(*) AS 'not_approved_manager'
  from [Intranet].[dbo].[CSEReduxResponses]
   where status =0 and approveddate is null
   group by submitterdept
</cfquery>

<cfquery datasource="Intranet" name="GetDepartments">
        SELECT *
        FROM CSEReduxDepts

</cfquery>
<cfquery dbtype="query" name="final_approved">
    select dep.csedept_id,DEP.csedept_name, COUNT(*) AS 'not_approved_manager'
from GetDepartments dep
join getNotApproved cs on cs.submitterdept = dep.csedept_id
where approveddate is null
group by dep.csedept_ID, dep.csedept_name
</cfquery>

Когда я запускаю их в файле cfm, это дает мне ошибку:

Query Of Queries syntax error.
Encountered "\'not_approved_manager\'. Incorrect Select List, 

который находится в строке <cfquery dbtype="query" name="final_approved">. Я знаю, что эти запросы работают, потому что я запускал их на своем сервере Microsoft SQL Server 2008, они показывают мне правильный вывод, все три работают. Поэтому я пытаюсь понять, почему это не работает на холодном синтезе.


person user3591637    schedule 04.06.2014    source источник
comment
Что произойдет, если вы удалите кавычки из своих имен в списке выбора?   -  person Matt Busche    schedule 05.06.2014
comment
я получаю другую ошибку: синтаксическая ошибка Query Of Queries. Встретил отд.   -  person user3591637    schedule 05.06.2014
comment
Может не поддерживать псевдонимы для имен таблиц.   -  person Matt Busche    schedule 05.06.2014
comment
Причина @math в том, что я тоже использую getdepartments где-то еще   -  person user3591637    schedule 05.06.2014
comment
на самом деле это может быть ммм, я использую coldfusion 9   -  person user3591637    schedule 05.06.2014
comment
@mattbusche не уверен, что ты предлагаешь   -  person user3591637    schedule 05.06.2014
comment
Запустите комбинированный запрос и запустите другой запрос отдельно. Не используйте запрос запроса, потому что это ничего не спасет   -  person Matt Busche    schedule 05.06.2014
comment
Почему вы используете запрос запросов для этого? Вы можете объединить все три этих вызова cfquery в один, используя JOIN в реальной СУБД. QoQ — это хорошо, но здесь это не лучший вариант. Пусть БД занимается извлечением данных, для этого она и предназначена.   -  person Scott Stroz    schedule 05.06.2014
comment
@scott новичок в этом, все еще учусь, я заставил это работать таким образом, я попытаюсь сделать это в одном, поэтому, чтобы ответить на ваш вопрос, я не знал, как это сделать по-другому.   -  person user3591637    schedule 05.06.2014
comment
Все хорошо. Вы должны иметь возможность использовать JOIN в новом запросе, который вы пишете, и я уверен, что он более эффективен.   -  person Scott Stroz    schedule 05.06.2014


Ответы (1)


Запрос запросов не поддерживает ключевое слово «присоединиться». Итак, в дополнение к другим вещам, происходящим, это:

from GetDepartments dep
join getNotApproved cs on cs.submitterdept = dep.csedept_id

должно стать примерно так:

from GetDepartments dep, getNotApproved cs 
where cs.submitterdept = dep.csedept_id

Как упоминалось в комментариях, псевдонимы для таблиц могут не поддерживаться.

person Dan Bracuk    schedule 04.06.2014
comment
Использование QoQ здесь не рекомендуется. Вы можете объединить все 2 вызова cfquery в 1 и позволить базе данных (чья работа заключается в обработке таких данных) выполнять свою работу. - person Scott Stroz; 05.06.2014