2014-01-20 93 views
0

我正在使用下面的代碼,並想知道爲什麼我得到「查詢查詢」錯誤?查詢查詢錯誤

<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 

我必須從上面的查詢傳遞數據(它開始無故障運行後)之類的下面,這就是爲什麼我寫我的環比像上面:

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

請告訴我這裏我錯了。

回答

5

正如錯誤所示,deferred是保留字(「Reserved words in queries」)。在原始查詢中將其別名,或嘗試使用QoQ中的方括號進行轉義。

+0

太棒了。我使用了不同的別名,它工作。我沒有想到它。非常感謝Adam。 :) – Jack