cfqueryステートメントを配置するサンプルデータ行を上部に含めました。
<cfset firstQuery = queryNew("date,NumberofPeople,EmploymentRate")>
<cfset aRow = queryAddRow(firstQuery)>
<cfset querySetCell(firstQuery,"date","OCT_2011",aRow)>
<cfset querySetCell(firstQuery,"NumberofPeople","28",aRow)>
<cfset querySetCell(firstQuery,"EmploymentRate","50%",aRow)>
<cfset aRow = queryAddRow(firstQuery)>
<cfset querySetCell(firstQuery,"date","NOV_2011",aRow)>
<cfset querySetCell(firstQuery,"NumberofPeople","28",aRow)>
<cfset querySetCell(firstQuery,"EmploymentRate","56%",aRow)>
<cfset aRow = queryAddRow(firstQuery)>
<cfset querySetCell(firstQuery,"date","DEC_2011",aRow)>
<cfset querySetCell(firstQuery,"NumberofPeople","29",aRow)>
<cfset querySetCell(firstQuery,"EmploymentRate","55%",aRow)>
<cfset aRow = queryAddRow(firstQuery)>
<cfset querySetCell(firstQuery,"date","JAN_2012",aRow)>
<cfset querySetCell(firstQuery,"NumberofPeople","30",aRow)>
<cfset querySetCell(firstQuery,"EmploymentRate","52%",aRow)>
<!--- Will Create new query with names as column headers--->
<cfset newQuery = queryNew(valueList(firstQuery.date,','))>
<!--- Will Create new query with names as column headers--->
<cfset people = queryAddRow(newQuery)>
<cfset rate = queryAddRow(newQuery)>
<cfloop query='firstQuery'>
<!---Syntax for this function is: QuerySetCell(query, column_name, value [, row_number ]) --->
<cfset querySetCell(newQuery,firstQuery.date,firstQuery.NumberofPeople,people)>
<cfset querySetCell(newQuery,firstQuery.date,firstQuery.EmploymentRate,rate)>
</cfloop>
<cfdump var="#newQuery#">
<cfdump var="#ArrayToList(newQuery.getColumnNames())#">
これが私のやり方ですが、なぜ私がそれをするのか考えられません。あなたのユースケースを聞いてみたいと思います。とにかく、これがお役に立てば幸いです。
(PSこれはCF9でテストされているため、コピーして貼り付けて自分でテストできるはずです。)
編集-(再び)::
言及するのを忘れて、これはDBから取得する名前が有効な列名である場合にのみ機能するため、スペースはありません(この例では、日付のスペースはアンダースコアに置き換えられています)。
>>>更新されたデータ構造の新しいコードスニペット。関数valueList(firstQuery.date,',')
は列を並べ替えません。ダンプ時に、出力時に列の順序が変更されます。この関数ArrayToList(newQuery.getColumnNames())
を使用して、CFが列の順序を内部的に維持していることを示しましたが、適切に質問するだけで済みます。このすべての情報を使用して、必要な方法でデータを適切に出力できるはずです。