私はすべてのブランチが表示されているので、100%以来簡単だろうと思う私のパーセンテージ列の合計を作成するのに苦労しています。しかし、私はすべてのブランチが表示されていない時の方程式を理解する必要があります。下の図では、各ブランチのパーセンテージは、処理されたチェックリストの数をチェックリストの総数で割った数によって計算されます。残念ながら、パーセンテージ列の合計を加算して合計列に表示するだけでは、単に「書き込む」方法を理解することはできません。どんな助けでも大歓迎です。CFパーセンテージ列
<cfset result = {} />
<cftry>
<cfquery datasource="#application.dsn#" name="GetLocationInfo">
SELECT *
FROM cl_checklists
</cfquery>
<cfquery name="allLocCode" dbtype="query">
SELECT DISTINCT trans_location, COUNT(*) AS locationCount FROM GetLocationInfo Where trans_location is not null GROUP BY trans_location ORDER BY trans_location
</cfquery>
<cfcatch type="any">
<cfset result.error = CFCATCH.message >
<cfset result.detail = CFCATCH.detail >
</cfcatch>
</cftry>
<cfset columnSum = ArraySum(allLocCode['locationCount'])>
<table border="1" id="Checklist_Stats">
<thead>
<th><strong>Location</strong></th>
<th><strong>Percent of Total Checklists</strong></th>
<th><strong>Location Total</strong></th>
</thead>
<tbody>
<cfloop query="allLocCode">
<cfset thisLocationName = trim(allLocCode.trans_location) />
<cfquery name="allLocCodeForLocationQry" dbtype="query">
SELECT trans_location,count(*) AS locCntr FROM GetLocationInfo WHERE trans_location='#thisLocationName#' GROUP BY trans_location ORDER BY trans_location
</cfquery>
<cfoutput query="allLocCodeForLocationQry">
<tr>
<td><strong>#thisLocationName#</strong></td>
<td>#NumberFormat((allLocCodeForLocationQry.locCntr/columnSum) * 100, '9.99')#%</td>
<td>#allLocCodeForLocationQry.locCntr#</td>
</tr>
</cfoutput>
</cfloop>
<cfdump var="#allLocCodeForLocationQry.locCntr#">
<tr>
<td><strong>Total</strong></td>
<td></td>
<td><cfoutput>#columnSum#</cfoutput></td>
</tr>
</tbody>
</table>
私はこれの合計を得ることができる方法がわからない:<td>#NumberFormat((allLocCodeForLocationQry.locCntr/columnSum) * 100, '9.99')#%</td>
これは私がなく、より簡単でより効率的に伝えるためにしようとしていたものです。 @Beginnerはおそらくエキスパートに似ています。 – TRose
これは基本的にこれを解決するだけで、2小数点をどのように表示するのですか?あなたは数字の書式と配列を同時に使用できますか? –
@DavidBriertonはい、できます。 – Beginner