2016-08-09 110 views
3

我有一個查詢,我想按組輸出。 這裏是我現在我做了一個 https://jsfiddle.net/nbqqp0cb/2/如何獲得按組輸出的最後一條記錄?

"dataset": [ 
    <cfoutput query="all_dates" group="Month_new"> 
        { 

         "seriesname": "#all_dates.Month_new#", 

        "data": [ 
        <cfoutput> 
         <CFIF all_dates.CurrentRow EQ all_dates.RecordCount> 
          { 

          "value": "#sum_total#" 
          } 

         <br> 
        <cfelse> 
          { 

          "value": "#sum_total#" 

          }, <br> 
         </cfif> 
         </cfoutput> 

        ] 
        },<br> 


         </cfoutput> 

的問題是每個組中的最後一個逗號。我得到它爲最後一個記錄工作,但即使是最後一個記錄最後也不應該有逗號。

回答

3

您的情況<CFIF all_dates.CurrentRow EQ all_dates.RecordCount>正在查詢CurrentRow與查詢中的整個RecordCount。您需要檢查每個組的計數。由於您在查詢結果集中沒有組計數(我假設),因此您需要以不同的方式檢查它。這可能不是最優雅的方法,但它應該起作用。

首先上面這段代碼初始化一個新的變量:

<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> 
+0

是它的工作好,只有問題進入最後},因爲最後}應該沒有,最後 –

+1

你需要添加一個類似的條件/邏輯到外層循環。我已將代碼添加到我的答案中。 –

+0

也可能[首先建立一個列表/數組字符串](http://trycf.com/gist/a6fdde2dbd28fed824eb0fd1d792da9b/acf2016?theme=monokai)並避免整個逗號問題?這就是說,@ anatp_123 - 你真的必須手動構建JSON字符串嗎? – Leigh

相關問題