首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFChart标签消失

CFChart标签消失
EN

Stack Overflow用户
提问于 2013-07-18 03:14:29
回答 2查看 1.2K关注 0票数 0

我正在运行以下查询,在运行SECONDCONN的QoQ之后,我在cfchart中没有得到所需的输出。

代码语言:javascript
复制
<!--- QoQ for FIRSTCONN --->
<!--- Master Query --->
<cfquery datasource = "XX.XX.X.XX" name="master1">
     SELECT STR_TO_DATE(date_format(Timedetail,'%m-%d-%Y'),'%m-%d-%Y') as FIRSTCONN
            , COUNT(Timedetail) as FIRSTOccurances
            , EVENTS 
     FROM  MyDatabase
     WHERE EVENTS = "FIRST" 
     GROUP BY FIRSTCONN ;
</cfquery> 

<!--- Detail Query --->
<!--- <cfdump var = "#master#"> --->
<cfquery dbtype="query" name="detail1">
    SELECT  *
    FROM master1 
    WHERE FIRSTCONN  >= <cfqueryparam value="#form.startdate#" cfsqltype="cf_sql_varchar"> 
    AND   FIRSTCONN  <  <cfqueryparam value="#dateAdd('d', 1,form.enddate)#" cfsqltype="cf_sql_varchar">;
</cfquery>  


<!--- QoQ for SECONDCONN --->
<!--- Master Query --->
<cfquery datasource = "XX.XX.X.XX" name="master2">
    SELECT STR_TO_DATE(date_format(Timedetail,'%m-%d-%Y'),'%m-%d-%Y') as SECONDCONN
           , COUNT(Timedetail) as SECONDOccurances
           , EVENTS 
    FROM  MyDatabase
    WHERE EVENTS = "SECOND" 
    GROUP BY SECONDCONN ;
</cfquery> 

<!--- Detail Query --->
<!--- <cfdump var = "#master#"> --->
<cfquery dbtype="query" name="detail2">
    SELECT  *
    FROM   master2 
    WHERE  SECONDCONN  >= <cfqueryparam value="#form.startdate#" cfsqltype="cf_sql_varchar"> 
    AND    SECONDCONN  <  <cfqueryparam value="#dateAdd('d', 1,form.enddate)#" cfsqltype="cf_sql_varchar">;
</cfquery>  


<cfchart format="flash"  chartwidth="1000" chartheight="500" scalefrom="0" scaleto="50000" xAxisTitle="Dates" yaxistitle="Number of Connections">
     <cfchartseries  query="detail1" type="line" itemColumn="FIRSTCONN" valueColumn="FIRSTOccurances" > 
     <cfchartseries  query="detail2" type="line" itemColumn="SECONDCONN" valueColumn="SECONDOccurances" > 
     </cfchartseries>
</cfchart>

在X轴上,图表显示了正确的startdate,但在中点之后的某处停止显示日期,而折线图的其余部分在x轴上没有提到任何日期。可能的原因是什么?当我只运行一个查询,即FIRSTCONN的QoQ时,日期显示正确。

附件显示了只有一个查询的输出,即用于FIRSTCONN的QoQ

用于两者,并显示不希望看到的输出。

我注意到的另一点是,当我仅针对SECONDCONN运行查询时,我看到的输出在x轴上没有提到任何日期。可能的原因是什么?我附上了

下面的reference.there在查询中没有变化。

我使用的cfchar代码如下:

代码语言:javascript
复制
<cfchart format="flash"  
          chartwidth="1000" 
          chartheight="500" 
          scalefrom="0" 
          scaleto="50000" 
          xAxisTitle="Date" 
          yaxistitle="Number of Connections" 
          showLegend = "yes" 
          showMarkers = "yes"
          sortXAxis= "yes"
          tipStyle="MouseDown"
          >



         <cfchartseries  query="detail2" type="line" itemColumn="SECONDCONN " valueColumn="SECONDOccurances" > 

  </cfchartseries>  
</cfchart>  

第二次查询的cfdump如下:

代码语言:javascript
复制
query
RESULTSET   
query
    SECONDCONN                SECONDOCCURANCES   EVENTS
1   {ts '2013-06-24 00:00:00'}  556             SECOND
2   {ts '2013-06-25 00:00:00'}  2710            SECOND
3   {ts '2013-06-26 00:00:00'}  2854            SECOND
4   {ts '2013-06-27 00:00:00'}  6348            SECOND
5   {ts '2013-06-28 00:00:00'}  4285            SECOND
6   {ts '2013-06-29 00:00:00'}  2843            SECOND
7   {ts '2013-06-30 00:00:00'}  875             SECOND
8   {ts '2013-07-01 00:00:00'}  4033            SECOND
9   {ts '2013-07-02 00:00:00'}  3211            SECOND
10  {ts '2013-07-03 00:00:00'}  2882            SECOND
11  {ts '2013-07-04 00:00:00'}  978             SECOND
12  {ts '2013-07-05 00:00:00'}  1727            SECOND
13  {ts '2013-07-06 00:00:00'}  811             SECOND
14  {ts '2013-07-07 00:00:00'}  522             SECOND
15  {ts '2013-07-08 00:00:00'}  2556            SECOND
16  {ts '2013-07-09 00:00:00'}  1160            SECOND
17  {ts '2013-07-10 00:00:00'}  8580            SECOND
18  {ts '2013-07-11 00:00:00'}  2630            SECOND
19  {ts '2013-07-16 00:00:00'}  12              SECOND 

如果我能回答更多的问题,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-29 08:23:56

当我更改折线图的显示顺序时,问题得到了解决。我的意思是,我以如下方式以递增的顺序显示:

代码语言:javascript
复制
<cfchartseries  query="detail1" type="line" itemColumn="FIRSTCONN" valueColumn="FIRSTOccurances" > 
<cfchartseries  query="detail2" type="line" itemColumn="SECONDCONN" valueColumn="SECONDOccurances" > and so on till seventh connection.

当我开始以递减方式显示它时,如下所示:

代码语言:javascript
复制
<cfchartseries  query="detail7" type="line" itemColumn="SEVENTHCONN" valueColumn="SEVENTHOccurances" > 
    <cfchartseries  query="detail6" type="line" itemColumn="SIXTHCONN" valueColumn="SIXTHOccurances" > and so on till FIRST CONNECTION

问题已经解决了,但我不确定背后的原因是什么。

票数 0
EN

Stack Overflow用户

发布于 2013-07-18 07:58:47

在没有看到查询数据转储的情况下,我猜测图表引擎可能已经决定在x轴上合理地显示太多的值。(我测试了您的代码,它在CF9上运行良好)。尝试使用较小的日期范围,看看日期标签是否会重新出现。如果是这样,您可能需要使用customize the chart settings来获得更好的拟合。下面是一些相关的样式设置。

  • isHideOverlapped -隐藏/显示与
  • skipLabels重叠的标签-调整以显示每个标签而不是垂直标签-标签方向(水平或垂直)

测试代码

代码语言:javascript
复制
<cfset detail1 = queryNew("")>
<cfset queryAddColumn(detail1, "FIRSTCONN", "date", listToArray("2013-07-31,2013-08-15,2013-08-17"))>
<cfset queryAddColumn(detail1, "FIRSTOccurances", listToArray("3,5,6"))>

<cfset detail2 = queryNew("")>
<cfset queryAddColumn(detail2, "SECONDCONN", "date", listToArray("2013-08-10,2013-08-18,2013-08-20"))>
<cfset queryAddColumn(detail2, "SECONDOccurances", listToArray("4,10,8"))>
<cfchart format="flash"  xAxisTitle="Dates" yaxistitle="Number of Connections">
       <cfchartseries  query="detail1" type="line" itemColumn="FIRSTCONN" valueColumn="FIRSTOccurances" /> 
       <cfchartseries  query="detail2" type="line" itemColumn="SECONDCONN" valueColumn="SECONDOccurances" /> 
</cfchart>

QoQ更快,这就是我使用它的原因。

老实说,对于处理运行缓慢的查询来说,这不是一个好方法。优化数据库查询的最佳位置是在数据库中。花点时间检查查询计划,找出瓶颈,添加适当的索引,等等。通过使用QoQ,你会拉回大量最终被丢弃的额外数据,从而导致大量额外的网络o/h。更不用说,构建新结果集所需的内存。它浪费了大量的资源,而且不能很好地扩展。

(也就是说,我相信你已经打开了一个关于查询速度的单独线程。因此,我不会再混淆问题,而是将对话留给您的其他主题。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17708313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档