Coldfusion 如何按组获取输出中的最后一条记录?

Coldfusion 如何按组获取输出中的最后一条记录?,coldfusion,Coldfusion,我有一个要按组输出的查询。 这是我现在拥有的我做了一个 “数据集”:[ { “序列名称”:“所有日期。新月份”, “数据”:[ { “值”:“总和” } { “值”:“总和” }, ] }, 问题是每个组中的最后一个逗号。我让它用于最后一个记录,但即使最后一个记录也有一个逗号,它不应该这样做。您的条件是根据查询中的整个记录计数检查CurrentRow。您需要检查每个组的计数。因为您的查询结果集中没有组计数(我假设),那么您需要以不同的方式进行检查。这可能不是最优雅的方法,但应该可以工作

我有一个要按组输出的查询。 这是我现在拥有的我做了一个

“数据集”:[
{
“序列名称”:“所有日期。新月份”,
“数据”:[
{
“值”:“总和”
} 

{ “值”:“总和” },
] },
问题是每个组中的最后一个逗号。我让它用于最后一个记录,但即使最后一个记录也有一个逗号,它不应该这样做。

您的条件
是根据查询中的整个
记录计数检查
CurrentRow
。您需要检查每个组的计数。因为您的查询结果集中没有组计数(我假设),那么您需要以不同的方式进行检查。这可能不是最优雅的方法,但应该可以工作

首先,此代码初始化一个新变量:

<cfset previous_month = "" >

然后按如下方式修改代码(这是伪代码,尚未测试):

“数据集”:[
{
“序列名称”:“所有日期。新月份”,
“数据”:[
,

{ “值”:“总和” } ] } ,

是的,它工作得很好,我遇到的唯一问题是最后一个},因为最后一个}不应该有一个,最后你还需要在外部循环中添加一个类似的条件/逻辑。我已经在我的答案中添加了代码。可能还能够避免整个逗号问题?也就是说,@anatp123-你真的需要构建JSON字符串吗一年一次?@leigh不,我不需要,我刚开始使用json@anatp_123-根据您正在构建的内容,您可能想看看serialize/DeserializeJSON函数,这些函数将标准CF对象(数组和结构)转换为JSON格式或从JSON格式转换为JSON格式。它们确实有一些“怪癖”,但与手工构建JSON字符串相比,JSON字符串的一大优势是它们可以自动转义保留字符。
<cfset previous_month = "" >
"dataset": [
<cfoutput query="all_dates" group="Month_new">
    {
        "seriesname": "#all_dates.Month_new#",
        "data": [
        <cfoutput>
            <cfif all_dates.CurrentRow GT 1>
                <cfif previous_month EQ all_dates.Month_new and all_dates.CurrentRow LT all_dates.RecordCount> 
                    , <br>
                <cfelse>
                    <br>
                </cfif>
            </cfif>
            {
                "value": "#sum_total#"
            }
            <cfset previous_month = all_dates.Month_new>
        </cfoutput>
        ]
    }
    <cfif all_dates.CurrentRow LT all_dates.RecordCount>,</cfif>
    <br>
</cfoutput>