Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 条件CF记录计数_Coldfusion_Cfquery_Cfoutput - Fatal编程技术网

Coldfusion 条件CF记录计数

Coldfusion 条件CF记录计数,coldfusion,cfquery,cfoutput,Coldfusion,Cfquery,Cfoutput,我试图通过一次查询多个类别中的大量项,然后使用语句将这些结果过滤到我为每个类别显示的唯一表中,来保存数据库服务器的一些请求。我希望找到返回的每个类别的记录计数,而不仅仅是整个查询的记录计数 基本准则是: <cfinvoke component="..." method="..." returnvariable="session.queryList"> ... </cfinvoke> <cfoutput #session.queryList#>

我试图通过一次查询多个类别中的大量项,然后使用语句将这些结果过滤到我为每个类别显示的唯一表中,来保存数据库服务器的一些请求。我希望找到返回的每个类别的记录计数,而不仅仅是整个查询的记录计数

基本准则是:

<cfinvoke component="..." method="..." returnvariable="session.queryList">
    ...
</cfinvoke>

<cfoutput #session.queryList#>
    <cfif #category# eq "A">
        [Table for A things]
    </cfif>
    <cfif #category# eq "B">
        [Table for B things]
    </cfif>
    <cfif #category# eq "C">
        [Table for C things]
    </cfif>
</cfoutput>
我不想在这里使用按类别排序,因为这些表实际上位于我们隐藏和显示的不同div上,所以我们需要单独的表


我遇到的问题是,如果category=A中没有返回任何记录,我希望一个Things的表不会显示任何结果,但是RecordCount似乎适用于整个查询。有没有什么方法可以表达类似的意思?

我相信你是在尝试做以下事情。如果查询按分组项排序,则具有帮助您对查询结果进行分组的功能

<cfoutput query="#session.queryList#" group="category">
  <h3>Category #category#</h3>
  <table>
    <tr><th>...</th><th>...</th></tr>
    <cfoutput><!--- This cfoutput loops through the each record in the group. --->
      ---rows---
    </cfoutput>
  <table>
</cfoutput>

我相信你正在努力做到以下几点。如果查询按分组项排序,则具有帮助您对查询结果进行分组的功能

<cfoutput query="#session.queryList#" group="category">
  <h3>Category #category#</h3>
  <table>
    <tr><th>...</th><th>...</th></tr>
    <cfoutput><!--- This cfoutput loops through the each record in the group. --->
      ---rows---
    </cfoutput>
  <table>
</cfoutput>
QoQ能帮上忙

<cfinvoke component="..." method="..." returnvariable="session.queryList">
 ...
</cfinvoke>
 <!---then run QoQ on it--->
<cfquery name="catA" dbtype="query">
 select * from session.queryList where category ="A"
</query>
<cfquery name="catB" dbtype="query">
 select * from session.queryList where category ="B"
</query>
<cfif catA.recordcount>
 <cfoutput query="catA">
  [Table for A things]
 </cfoutput>
 <cfelse>
  No Records for A things
</cfif>
<cfif catB.recordcount>
 <cfoutput query="catB">
  [Table for B things]
 </cfoutput>
 <cfelse>
  No Records for B things
</cfif>
QoQ能帮上忙

<cfinvoke component="..." method="..." returnvariable="session.queryList">
 ...
</cfinvoke>
 <!---then run QoQ on it--->
<cfquery name="catA" dbtype="query">
 select * from session.queryList where category ="A"
</query>
<cfquery name="catB" dbtype="query">
 select * from session.queryList where category ="B"
</query>
<cfif catA.recordcount>
 <cfoutput query="catA">
  [Table for A things]
 </cfoutput>
 <cfelse>
  No Records for A things
</cfif>
<cfif catB.recordcount>
 <cfoutput query="catB">
  [Table for B things]
 </cfoutput>
 <cfelse>
  No Records for B things
</cfif>

QofQ很慢。您只需往返mySQL即可完成此任务:

SELECT someColumn, category, count(*) AS categoryCount 
FROM theTable
GROUP BY category
ORDER BY category, someColumn
分组将为您提供可以在CFML中使用的每个类别的计数

<cfoutput query="session.queryList" group="category">
    <cfif categoryCount eq 0>
        No Records for #category#. =(
    </cfif>
    <cfoutput>
        #someColumn#<br>
    </cfoutput>
</cfoutput>

QofQ很慢。您只需往返mySQL即可完成此任务:

SELECT someColumn, category, count(*) AS categoryCount 
FROM theTable
GROUP BY category
ORDER BY category, someColumn
分组将为您提供可以在CFML中使用的每个类别的计数

<cfoutput query="session.queryList" group="category">
    <cfif categoryCount eq 0>
        No Records for #category#. =(
    </cfif>
    <cfoutput>
        #someColumn#<br>
    </cfoutput>
</cfoutput>

我不想那样分组。我试图获取查询返回,对其进行过滤,以便在每个特定的表中只显示某些返回的记录,并获取这些过滤结果的记录计数。因此,如果我返回的记录总数为500条,其中100条为A类,我想知道如果A类的recordCount为0,则显示“没有A类的项,但我只能找出如何获取总查询的记录计数”。@MLynch-我想您仍然可以通过分组输出来实现这一点。只需设置一个标志,指示何时没有找到任何结果。我不想那样分组。我试图获取查询返回,对其进行过滤,以便在每个特定的表中只显示某些返回的记录,并获取这些过滤结果的记录计数。因此,如果我返回的记录总数为500条,其中100条为A类,我想知道如果A类的recordCount为0,则显示“没有A类的项,但我只能找出如何获取总查询的记录计数”。@MLynch-我想您仍然可以通过分组输出来实现这一点。只需设置一个标志,指示何时没有找到任何结果。这是我以前想的,但我一定把事情搞砸了,因为它工作不正常。谢谢你的建议和正确的格式,这真的很有帮助。这是我以前想的,但我一定把事情弄糟了,因为它不能正常工作。谢谢你的建议和正确的格式,这真的很有帮助。QoQ的作品,但不太理想。记住他们不是免费的。因此,您基本上是在用额外的数据库行程换取额外的资源成本,以便在内存中构建多个数据集。我认为可以在原始sql查询中执行此操作。1.你的数据库管理系统是什么?2.大查询看起来像什么?QoQ的工作,但不太理想。记住他们不是免费的。因此,您基本上是在用额外的数据库行程换取额外的资源成本,以便在内存中构建多个数据集。我认为可以在原始sql查询中执行此操作。1.你的数据库管理系统是什么?2.大查询是什么样子的?这是一个有趣的想法,可以使用一些额外的逻辑。它不会按原样工作,因为该查询中的计数*永远不会为0@MLynch-您使用的是哪种dbms?用于返回多个结果集的查询是什么?此外,根据DBMS的不同,您不能按所选的列数分组。但是你可以使用subselect或window函数来获取你想要的计数。这是一个有趣的想法,可以使用一些额外的逻辑。它不会按原样工作,因为该查询中的计数*永远不会为0@MLynch-您使用的是哪种dbms?用于返回多个结果集的查询是什么?此外,根据DBMS的不同,您不能按所选的列数分组。但是您可以使用subselect或window函数来获取您要查找的计数。