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>