出力を印刷する Mysql クエリがあります。ビューから集計された出力を印刷できるように、このクエリをビューとして保存したいと考えています。この非常に単純化された例では、ビューを作成し、それに対して 2 つのクエリを実行します。すべてが正常に機能しています。ただし、データベースに3回アクセスしたようです.1回はビュー用、2回はクエリ用です。最初のクエリ (REQUESTING THAT BE TURNED INTO A VIEW) を実行し、次に 2 番目のクエリを実行することで、データベースに 2 回しかアクセスできません。私は Cold Fusion で Query of Queries を試しましたが、以下の簡単な例を実行するにはあまりにも制限されていました。
<cfquery name = "viewtest" datasource = "Moxart">
alter view testview AS
select PersonFn, PersonLn, PersonState, dec1 from Person
where PersonState = <cfqueryparam value = "PA">
OR PersonState = <cfqueryparam value = "NJ">
order by PersonState,PersonLN
</cfquery>
<cfquery name = "test" datasource = "Moxart">
select * from testview
</cfquery>
<table>
<cfoutput>
<cfloop array = #test.getColumnList()# index = "col">
<td>#col#</td>
</cfloop>
</cfoutput>
<cfoutput query = "test">
<tr>
<cfloop array = #test.getColumnList()# index = "col">
<td>#test[col][currentrow]#</td>
</cfloop>
</tr>
</cfoutput>
</table>
<cfset j = 0>
<cfloop array = #test.getColumnList()# index = "scol">
<cfset j = j + 1>
<cfif j EQ 1>
<cfset aggcnt = "count(#scol#)">
</cfif>
<cfset aggarr[j] ="sum(#scol#)">
</cfloop>
<cfset aggls = ArrayToList(aggarr)>
<cfoutput>
<cfquery name = "vtest" datasource = "Moxart">
select #aggls#, #aggcnt# from testview
group by PersonState
</cfquery>
</cfoutput>
<table>
<tr>
<cfoutput>
<cfloop array = #vtest.getColumnList()# index = "col">
<td>#col#</td>
</cfloop>
</cfoutput>
<cfoutput query = "vtest">
<tr>
<cfloop array = #vtest.getColumnList()# index = "col">
<td>#vtest[col][currentrow]#</td>
</cfloop>
</tr>
</cfoutput>
</table>