2015-11-05 49 views
-2

我想查詢運行報告。我試圖讓它搜索日期範圍並檢查用戶完成了多少工作。 Closed_by是顯示用戶數字意味着他們完成了作品的字段,而op_id表示他們提交了作品。有什麼方法可以讓我明白每個人的成就?運行個人報告

<cftry> 

<cfquery name="received" datasource="dns"> 
     Select * 
     FROM dbo.Dealer_Track_Work 
     WHERE Date_Received between <cfqueryparam value="10/13/2015" /> 
     AND <cfqueryparam value="10/26/2015" /> 
     WHERE Closed_by <cfqueryparam value="192" /> 
     AND op_id <cfqueryparam value="192" /> 
</cfquery> 

<cfdump var="#received#" label="received"> 

<!---<cfquery name="users" dbtype="query"> 
     Select * 
     FROM received  
     WHERE Closed_by <cfqueryparam value="192" /> 
     AND op_id <cfqueryparam value="192" /> 
</cfquery> 

<cfdump var="#users#" label="users">---> 

<cfcatch type="any"> 
     <cfset result.error = CFCATCH.message > 
     <cfset result.detail = CFCATCH.detail > 
    </cfcatch> 
</cftry> 

回答

3

你可以拋棄你的where子句並用group by子句替換它。 你也應該列出,而不是使用select *

Select op_id 
    ,count(op_id) as itemsOpened 
    ,count(closed_by) as itemsClosed 
    FROM dbo.Dealer_Track_Work 
    WHERE Date_Received between <cfqueryparam value="10/13/2015" /> 
    AND <cfqueryparam value="10/26/2015" /> 
    AND op_id IN (<cfqueryparam value="192,229,123" list="true">) 
    GROUP BY op_id 
    ORDER BY op_id ASC 

你的查詢還可能需要某種形式的聚集您的欄,你知道你的工作定義。

編輯:修改得到打開和關閉的項目,加入過濾

+0

剛剛更新其添加列的項目開業,項目關閉,AND子句,讓你提供op_id名單由 – rodmunera

+0

過濾是,它不是一個真正的ColdFusion問題(cfqueryparams除外),更多的是sql問題。我還假設你使用的數據庫是sql server,但我認爲這個語法也適用於mySQL – rodmunera

+0

你可以按任何列進行排序,只需在GROUP BY之後添加一個SORT BY子句即可。我已經更新了答案 – rodmunera