我知道您可以查询查询中返回了多少项,但是...
问题:是否可以获取具有特定值的recordcount
行,例如...
<cfset totalReturned = myquery.recordcount>
<cfset totalReturnedComplete = myquery.recordcount (where status = "Complete")>
我知道上面的方法不起作用,但是我正在寻找类似上面的代码的东西。
最佳答案
您有两种选择。您可以使用在status = "Complete"
时增加的计数器来循环查询,也可以使用查询查询:
<cfquery name="mynewquery" dbtype="query">
SELECT status, COUNT(*) AS status_cnt
FROM myquery
GROUP BY status
</cfquery>
但是,执行此操作的另一种方法是,由于您使用的是SQL Server,因此将修改您的初始查询(假设您有权执行此操作),以便使用
status = "Complete"
作为窗口返回SUM()
的计数。功能:<cfquery name="myquery" datasource="mydatasource">
SELECT id, status
, SUM(CASE WHEN status = 'Complete' THEN 1 ELSE 0 END) OVER ( ) AS complete_cnt
FROM mytable
</cfquery>
<cfset totalReturned = myquery.recordcount />
<cfset totalReturnedComplete = myquery.complete_cnt />
See SQL Fiddle here.
关于sql-server - 获取cfquery中返回的特定行的计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30224258/