【发布时间】:2014-04-10 21:40:29
【问题描述】:
我有这个问题
<cfquery datasource="Intranet" name="getMaxstars">
SELECT TOP (1) WITH TIES emp_id, SUM(execoffice_status) AS total_max
FROM CSEReduxResponses
GROUP BY emp_id
ORDER BY total_max DESC
</cfquery >
<cfquery datasource="phonelist" name="getEmployees">
SELECT first_name, last_name, emp_id
FROM employee
</cfquery>
<!--- Query of a query join --->
<cfquery name="getEmployeeStars" dbtype="query">
SELECT getEmployees.first_name + ' ' + getEmployees.last_name AS full_name, getMaxstars.total_max AS stars
FROM getMaxstars, getEmployees
WHERE getMaxstars.emp_id = getEmployees.emp_id
</cfquery>
在这个查询中,我想在 CSEReduxResonses 表中获取 emp_id 的最大值,我想得到的是输出 只有员工表有的员工的全名,还有多少星(execoffice_status) 员工有。 所以输出看起来像这样:
约翰·多伊 4
我不断收到此错误:
查询语法错误。 遇到“。不正确的选择列表,不正确的选择列,getEmployees.emp_namefirst后面不能跟'+'
C:\inetpub\wwwroot\WebServer\win\test\cse_execoffice_newsletter.cfm 出现错误:第 60 行
58 :
59:
60:
61 : SELECT getEmployees.emp_namefirst + ' ' + getEmployees.emp_namelast AS full_name, getMaxstars.total_max AS [stars]
62:从getMaxstars,getEmployees
【问题讨论】:
-
你有没有尝试重写这部分
as [stars]? -
在哪一行出错?这是 SQL Server 的错误,而不是 QoQ 的错误,所以我认为您可能正在查看错误的代码..?
-
您的 Query of Query 似乎没有问题,但其他问题,
getEmployees或getMaxstars。该错误表明它来自 SQLServer。如果是查询错误查询,它会说类似Query Of Queries syntax error. -
我已经编辑了正确的错误。
-
为什么要为此使用 QoQ?使用 derived table 的单个 JOIN 可以解决问题,而且效率更高。
标签: sql-server coldfusion qoq