Mysql 获取错误查询的查询

Mysql 获取错误查询的查询,mysql,coldfusion,coldfusion-9,Mysql,Coldfusion,Coldfusion 9,我正在使用下面的代码,并想知道为什么我会得到查询错误的查询 <cfquery name="findpercentage" datasource="#mydatasource#"> SELECT Count(TableId_bi) AS Total_Events ,Sum(CASE WHEN 'OPEN' = Event_vch THEN 100 END) / Count(*) AS OPENS

我正在使用下面的代码,并想知道为什么我会得到查询错误的查询

<cfquery name="findpercentage" datasource="#mydatasource#">

    SELECT  
         Count(TableId_bi) AS Total_Events
            ,Sum(CASE WHEN 'OPEN'       =   Event_vch THEN 100 END) / Count(*) AS OPENS
            ,Sum(CASE WHEN 'BOUNCE'     =   Event_vch THEN 100 END) / Count(*) AS BOUNCE
            ,Sum(CASE WHEN 'DEFERRED'   =   Event_vch THEN 100 END) / Count(*) AS DEFERRED
            ,Sum(CASE WHEN 'DROPPED'    =   Event_vch THEN 100 END) / Count(*) AS DROPPED
            ,Sum(CASE WHEN 'DELIVERED'  =   Event_vch THEN 100 END) / Count(*) AS DELIVERED
            ,Sum(CASE WHEN 'PROCESSED'  =   Event_vch THEN 100 END) / Count(*) AS PROCESSED
            ,Sum(CASE WHEN 'SPAMREPORT' =   Event_vch THEN 100 END) / Count(*) AS SPAMREPORT 
    FROM    
            mydatabase;


    </cfquery>


<cfdump var="#findpercentage#">



<cfquery name = "piechartdisplay" dbtype = "query">

SELECT OPENS as Ecount, 'Open' as type
from findpercentage

UNION

SELECT BOUNCE as Ecount, 'Bounce' as type
from findpercentage

UNION

SELECT DEFERRED as Ecount, 'Deferred' as type
from findpercentage

UNION

SELECT DROPPED as Ecount, 'Dropped' as type
from findpercentage

UNION

SELECT DELIVERED as Ecount, 'Delivered' as type
from findpercentage

UNION

SELECT PROCESSED as Ecount, 'Processed' as type
from findpercentage

UNION


SELECT SPAMREPORT as Ecount, 'Spamreport' as type
from findpercentage



</cfquery>




<cfdump var="#piechartdisplay#">
查询的第一部分是在网页上转储属性,但是piechartdisplay的第二次转储尝试是生成查询或查询错误。错误描述如下:

Error Executing Database Query.

Query Of Queries syntax error.
Encountered "DEFERRED. Incorrect Select List, Incorrect select column,

The error occurred in C:\Path\myfile.cfm: line 39

37 : 
38 : 
39 : <cfquery name = "piechartdisplay" dbtype = "query">
40 : 
41 : SELECT OPENS as Ecount, 'Open' as type
SQL    SELECT OPENS as Ecount, 'Open' as type from findpercentage UNION SELECT BOUNCE as Ecount, 'Bounce' as type from findpercentage UNION SELECT DEFERRED as Ecount, 'Deferred' as type from findpercentage UNION SELECT DROPPED as Ecount, 'Dropped' as type from findpercentage UNION SELECT DELIVERED as Ecount, 'Delivered' as type from findpercentage UNION SELECT PROCESSED as Ecount, 'Processed' as type from findpercentage UNION SELECT SPAMREPORT as Ecount, 'Spamreport' as type from findpercentage
在上面的查询开始运行后,我必须在没有如下错误的情况下传递数据,这就是为什么我像上面那样编写QoQ的原因:

<cfset dataItem =[
            '#type#', '#Ecount#'
        ]>

请告诉我这里哪里错了。

正如错误所暗示的,deferred是一个保留字。在原始查询中将其别名为其他内容,或者尝试在QoQ中用方括号转义它。

正如错误所暗示的,deferred是一个保留字。在原始查询中将其别名为其他内容,或者尝试在QoQ中使用方括号对其进行转义。

Awesome。我用了不同的别名,效果很好。我没想到。非常感谢亚当令人惊叹的我用了不同的别名,效果很好。我没想到。非常感谢亚当