tipos sirven que para nombres matematicas graficos grafico graficas ejemplos caracteristicas mysql coldfusion coldfusion-8

mysql - sirven - Visualización de datos de múltiples consultas en un solo gráfico circular usando la etiqueta cfchart



tipos de graficas y sus nombres (2)

Considere el siguiente código, ahora mismo tengo el siguiente código en mi página .cfm dentro de la etiqueta <body> :

DataSource = xx.xx.x.xx Name of the database = sgemail Name of the relevant column = event_vc

Básicamente, he calculado el porcentaje de conexiones abiertas en las siguientes consultas.

<cfquery datasource = "xx.xx.x.xx" name="qSen"> SELECT (select count(*) FROM sgemail) AS TOTAL_CONNECTIONS, (SELECT count(*) FROM sgemail WHERE event_vc = "open") AS OPEN_CONNECTIONS, (ROUND((SELECT OPEN_CONNECTIONS / (TOTAL_CONNECTIONS))*100)) AS "% OPEN" ; </cfquery> <cfquery datasource = "xx.xx.x.xx" name="qSen"> SELECT (select count(*) from sgemail) AS TOTAL_CONNECTIONS, (SELECT count(*) from sgemail where event_vc = "BOUNCE") AS BOUNCE_CONNECTIONS, (ROUND((SELECT BOUNCE_CONNECTIONS / (TOTAL_CONNECTIONS))*100)) AS "% BOUNCE" ; </cfquery>

Básicamente, "% OPEN" y "% BOUNCE" se utilizan para mostrar el porcentaje de conexiones abiertas y de rebote de la base de datos.

He incluido la siguiente etiqueta <cfchart> debajo de la etiqueta <cfquery> anterior de la siguiente manera:

<cfchart format="png" scalefrom="0" scaleto="1200000" pieslicestyle="solid"> <cfchartseries type="pie" serieslabel="Website Traffic 2006" seriescolor="blue" query = "qSengrid" valuecolumn="% OPEN" itemcolumn="" > </cfchartseries> </cfchart>

Mis preguntas:

1) El caso es que el cuadro de arriba muestra solo un círculo con color amarillo. Quiero mostrar la información recuperada por ambas consultas en un gráfico. Por ejemplo, el valor que obtengo para %OPEN es 30 y el valor que obtengo para %Bounce es 20. También tengo otras consultas que arrojan valores diferentes que hacen que todo el gráfico circular sea 100 pero he incluido solo dos cfqueries por el bien de la simplicidad para esta pregunta. Por favor, hágame saber cómo proceder más.

2) Además, cuando comenté la segunda consulta (donde estoy obteniendo el valor de % Bounce ), puedo ver el valor de %OPEN lado del círculo del gráfico circular. Sin embargo, cuando ejecuto ambas consultas con solo un <cfchart> mencionado anteriormente (con valuecolumn = %OPEN ) no puedo ver ningún valor escrito al lado del círculo.

Responda mis preguntas anteriores y avíseme si hay alguna pregunta que pueda responder.


(De los comentarios)

Al reutilizar el mismo nombre de consulta, lo más probable es que sobrescriba los resultados anteriores. Además, no es así como funciona <cfchartseries query="..."> . Acepta una sola consulta, lo que significa que todos los valores deben estar contenidos en la misma consulta.

Si debe usar consultas separadas, <cfchartdata> cada consulta un nombre único y una etiqueta <cfchartdata> por separado para cada valor:

<cfchart format="png"> <cfchartseries type="pie"> <cfchartdata item="% Open" value="#qTotalOpen.TotalNumber#"> <cfchartdata item="% Bounce" value="#qTotalBounced.TotalNumber#"> ... other values ... </cfchartseries> </cfchart>


No conozco ColdFusion, pero parece que el problema es obtener los valores % Open y % Bounce en el mismo conjunto de resultados. De acuerdo con sus ejemplos de marcado, creo que su resultado debe tener un aspecto similar (inventé los nombres de las columnas):

theitem thevalue --------- -------- % OPEN 40 % BOUNCE 23

Entonces su marcado en <cfcchart> sería algo como esto:

<cfchartseries type="pie" serieslabel="Website Traffic 2006" seriescolor="blue" query = "qSengrid" valuecolumn="thevalue" itemcolumn="theitem" >

Si ese es el caso (y recuerde que estoy adivinando aquí porque nadie más ha publicado una respuesta todavía), entonces la consulta adjunta se vería así:

SELECT CONCAT(''% '', UPPER(sgemail.event_vc)) AS theitem, COUNT(*) / tots.totconn AS thevalue FROM sgemail, (SELECT COUNT(*) AS totconn FROM sgemail WHERE event_vc IN (''open'', ''bounce'')) tots WHERE tots.totconn <> 0 AND sgemail.event_vc IN (''open'', ''bounce'') GROUP BY CONCAT(''% '', UPPER(sgemail.event_vc))

La consulta está un poco involucrada porque calcula los porcentajes para un subconjunto de valores de event_vc , además de proteger contra un error de división por cero. Si el gráfico puede tomar recuentos directos y convertirlos a porcentajes, la consulta de "recuento solo" es mucho más simple:

SELECT CONCAT(''% '', UPPER(sgemail.event_vc)) AS theitem, COUNT(*) / tots.totconn AS thevalue FROM sgemail WHERE sgemail.event_vc IN (''open'', ''bounce'') GROUP BY CONCAT(''% '', UPPER(sgemail.event_vc))