Gra*_*ntU 5 coldfusion railo qoq
我正在运行以下两个语句:
首先是A)它做了它需要做和工作的事情:
SELECT
itemColumn
,valueColumn
,label
FROM
rstCombinedChartData
UNION ALL
SELECT
itemColumn
,CAST(valueColumn AS INTEGER) AS valueColumn
,label
FROM
rstChartData
Run Code Online (Sandbox Code Playgroud)
这给了我以下结果:

接下来我需要获取这些结果并在这种情况下返回每个值的itemcolumn总数是和否
i.e.
Yes 200
No 400
Run Code Online (Sandbox Code Playgroud)
B)这是我实现此目的的查询:
SELECT
itemColumn
,SUM(valueColumn) AS valueColumn
,label
FROM
rstCombinedChartData (this is above result set)
GROUP BY
label
,itemColumn
ORDER BY
label DESC
,itemColumn DESC
Run Code Online (Sandbox Code Playgroud)
但是,我得到以下不正确的结果:

什么在这里与查询B进行它应该是yes = x和no = x,而是我得到错误和所有总数?
CF功能:
<cffunction name="getAverageChartData" hint="I return the data required to render an average chart." returntype="array" output="false">
<cfargument name="surveyList" hint="I am a record set of Surveys." required="true" type="query" />
<cfargument name="filter" hint="I am the optional filter which is to be applied to all results." required="false" default="" type="string" />
<cfset var local=structNew() />
<cfset var rstChartData="" />
<cfset var rstChartDataTotal="" />
<cfset var rstCombinedChartData=queryNew("itemColumn,valueColumn,label","varchar,integer,varchar") />
<cfset local.objQuestion=objQuestionService.get(arguments.surveyList.question_ID[1]) />
<cfset local.intQuestionTypeID = local.objQuestion.getTypeID() />
<cfset local.strSubQuestionList=local.objQuestion.getAnswer() />
<cfset local.strPossibleAnswerList=local.objQuestion.getPossibleAnswer() />
<cfset local.arrChartDataResult=arrayNew(1) />
<!--- loop over each school's survey --->
<cfloop query="arguments.surveyList">
<cfset local.arrChartData = getChartData(arguments.surveyList.survey_id, arguments.surveyList.question_id, arguments.filter) />
<!--- loop over each sub question and append (union) it to a running total --->
<cfloop array="#local.arrChartData#" index="rstChartData">
<cfquery name="rstCombinedChartData" dbtype="query">
SELECT
itemColumn
,valueColumn
,label
FROM
rstCombinedChartData
UNION ALL
SELECT
itemColumn
,CAST(valueColumn AS INTEGER) AS valueColumn
,label
FROM
rstChartData
</cfquery>
</cfloop>
</cfloop>
<!--- get the totals for each itemColumn --->
<cfquery name="rstChartDataTotal" dbtype="query">
SELECT
itemColumn
,SUM(valueColumn) AS valueColumn
,label
FROM
rstCombinedChartData
GROUP BY
label
,itemColumn
ORDER BY
label DESC
,itemColumn DESC
</cfquery>
Run Code Online (Sandbox Code Playgroud)
好的 - 重大更新
我不明白为什么,但我错误地添加了这一行:
<cfset querySetCell(rstCombinedChartData, "itemColumn", "1") />
Run Code Online (Sandbox Code Playgroud)
突然,查询开始在Railo中运行!好了,我有一个额外的结果,没有意义"1"但WTF!似乎Railo并不喜欢所有的肯定,没有任何答案我把其他东西放入混合中并且它开始正确地再次正确地应对它.
有谁知道这里发生了什么?我已经厌倦了在sql中作为varchar进行转换,但这不仅仅在CF级别上有效.

如果我拿出这条线:
<cfset querySetCell(rstCombinedChartData, "itemColumn", "1") />
Run Code Online (Sandbox Code Playgroud)
它可以追溯到:

尝试这个查询 -
SELECT UNIQUE itemColumn
, SUM( SELECT valueColumn
FROM rstCombinedChartData
WHERE itemColumn = "yes") as YES
, SUM ( SELECT valueColumn
FROM rstCombinedChartData
WHERE itemColumn = "no") as NO
, label;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
567 次 |
| 最近记录: |