0

出力を印刷する 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> 
4

0 に答える 0