我正在尝试在电子邮件中插入图表,该图表会随着时间的推移绘制多个系列的数据。电子邮件工作正常,图表成功附加,但我生成图表的方式有问题。
我正在尝试做什么:循环查询结果,按“地区描述”分组(为每个地区制作一个系列),然后为每个地区生成一个数据点一个月。
以下是我尝试绘制的查询查询结果示例:
六个月的每一个都有六个'领土'的入口。
以下是我在网上找到的代码,我一直在尝试使用它。
<cfchart
format="png"
name="marketADH"
xAxisTitle="Month"
yAxisTitle="% Adherence"
chartHeight = "500"
chartWidth = "500"
scalefrom="60"
scaleto="90"
font="Arial"
gridlines="10"
showXGridlines="no"
showYGridlines="no"
showborder="no"
show3d="no"
showlegend="yes"
sortxaxis="no"
showmarkers="yes"
>
<cfloop query="HISTORY_CHART" group="TERRITORY_DESC">
<!---- this part of the code will run ONCE for each territory ---->
<cfchartseries
type="curve"
paintStyle="plain"
seriesLabel="#HISTORY_CHART.TERRITORY_DESC#">
<cfloop>
<!----- this part of the code will run once for every record for the territory ------>
<cfchartdata item="#HISTORY_CHART.RPT_MTH#" value="#HISTORY_CHART.ADHERENCE_PCT#">
</cfloop>
</cfchartseries>
</cfloop>
</cfchart>
结果:图表正在生成并附加在电子邮件中,但只有一个月的价值 - 12/01/2017这是数据集中六个月中的第一个。本月,所有36个左右的值似乎都在y轴上填充。
我期望看到的是这样的:
我最终得到的是:
任何人都可以提供任何帮助将不胜感激。非常感谢。
答案 0 :(得分:2)
<cfloop query="HISTORY_CHART" group="TERRITORY_DESC">
我在猜测&#34;组&#34;因为查询数据没有正确排序,所以没有按预期工作。
cfloop documentation几乎没有强调的是&#34;组&#34;功能要求查询数据的排序的顺序与&#34; group&#34;相同。声明(S)即可。如果它按不同的列排序(例如&#34; Rpt_Mth&#34;)并且cfloop按&#34; Territory_Desc&#34;分组,则您无法获得预期的输出。
Sorted vs Unsorted example on TryCF.com
确保sql查询按组中使用的相同列进行排序,&#34; Territory_Desc&#34;。然后图表应该正确生成。
<cfquery ...>
SELECT Adherence_Pct,Rpt_Mth,Territory_Desc
FROM TableName
ORDER BY Territory_Desc
</cfquery>