J'ai quelques requêtes qui tirent des données à utiliser dans un graphique.Coldfusion cfchart empilé commande
<cfquery name='clusterPrivateReferrals' dbtype="query">
SELECT organisationName, count(messageID)*1000/listSize as msgCount
FROM clusterReferrals
WHERE datecreated>#refRateStartDate#
AND refTypeID=3
GROUP BY organisationName, listSize
</cfquery>
<cfquery name='clusterNHSReferrals' dbtype="query">
SELECT organisationName, count(messageID)*1000/listSize as msgCount
FROM clusterReferrals
WHERE datecreated>#refRateStartDate#
AND refTypeID<>3
GROUP BY organisationName, listSize
</cfquery>
Le code graphique est
<cfchart format="flash" title="Cluster referrals per 1000 patients from #dateformat(refRateStartDate, 'dd-mmm-yy')#" chartWidth="470" chartHeight="380" fontSize="12" style="chart.xml" seriesPlacement = "stacked" showLegend = "yes">
<cfchartseries type="bar" seriescolor="##FFD800" seriesLabel="Private" query="clusterPrivateReferrals" valueColumn="msgCount" ItemColumn="organisationName">
</cfchartseries>
<cfchartseries type="bar" seriescolor="##F47D30" seriesLabel="NHS" query="clusterNHSReferrals" valueColumn="msgCount" ItemColumn="organisationName">
</cfchartseries>
</cfchart>
cela me donne le graphique suivant
Comment puis-je obtenir les données affichées triées par le total des éléments empilés?
@ Ben
Cela m'a fait sur la bonne voie, je ne savais pas auparavant QOQ pourrait combiner 2 requêtes complètement différentes
<cfquery name='clusterPrivateReferrals' dbtype="query">
SELECT organisationName, count(messageID)*1000/listSize as privateRate
FROM allReferrals
WHERE datecreated>#refRateStartDate#
AND refTypeID=3
GROUP BY organisationName, listSize
</cfquery>
<cfquery name='clusterNHSReferrals' dbtype="query">
SELECT organisationName, count(messageID)*1000/listSize as nhsRate
FROM allReferrals
WHERE datecreated>#refRateStartDate#
AND refTypeID<>3
GROUP BY organisationName, listSize
</cfquery>
<cfquery name="stackOrder" dbtype="query">
select clusterPrivateReferrals.privateRate,
clusterNHSReferrals.nhsRate,
clusterPrivateReferrals.organisationName,
(clusterPrivateReferrals.privateRate + clusterNHSReferrals.nhsRate) as totalRate
from clusterPrivateReferrals, clusterNHSReferrals
WHERE clusterNHSReferrals.organisationName = clusterPrivateReferrals.organisationName
order by totalRate desc
</cfquery>
Je ne savais pas que vous pouviez faire ce genre de chose dans un QoQ mais maintenant que je le vois, je ne vois pas pourquoi il ne serait pas t travail. Pour une raison quelconque, j'avais dans ma tête que vous pouviez faire un QoQ avec une seule requête d'origine. – Jason
J'ai utilisé QofQ pour joindre des données provenant d'autres sources de données auparavant. C'est plus pratique que ce que les gens ont tendance à croire. –
Cela fait presque Ben, et m'a mis sur la bonne voie. Voir ci-dessus pour le code de travail. – Saul