'세로 정렬'과 같은 소리 나는 몇 년 전에 썼습니다. 아마도 도움이 될 것입니다 :
<html>
<head>
<title>Vertical Sorting</title>
</head>
<cfquery name = "qMyQuery" datasource = "dsn">
SELECT fields
FROM table
ORDER BY myField
</cfquery>
<body>
<!--- set the number of colums you wish to have --->
<cfset cols = 5>
<!--- get the number of rows so you know what record to display at the top of the next row. for example if our query contains "a,b,c,d,e,f,g,h,i,j,k,l,m" (13 elements) it will produce 3 totalrows--->
<cfset totalRows = ceiling(qMyQuery.RecordCount/cols)>
<!--- set inital record to 1 "output" is the actual cell of the query --->
<cfset output = 1>
<!--- Create table --->
<table width = "100%" border="0" align="center" cellpadding="2" cellspacing = "2">
<!--- loop through the rows. This loop will run 3 times in this example --->
<cfloop from = "1" to = "#totalRows#" index = "thisRow">
<tr>
<!--- this loop will run 5 times in times in this example --->
<cfloop from = "1" to = "#cols#" index = "thisCol">
<!--- the width in the table cell will dynamicaly calculated to evenly distribute the cells. in this example if cols = 5 100/5 will make the cells 20% of the table --->
<td width = "<cfoutput>#numberformat((100/cols), 99)#</cfoutput>%" align="center" nowrap style = "border: 1px solid #ccc;">
<!--- Check current record with the record count, this will be used to display data or an empty cell --->
<cfif output lte qMyQuery.recordCount>
<cfoutput>#qMyQuery.Mon[output]#</cfoutput>
<cfelse>
<!--- use <br> to display an empty cell --->
<br>
</cfif>
<!--- increment counter to the next record in this example if we started on the first cell of the first row it would be 1(a), then 4(d), then 7(g) and so on if this was the firs cell on the second row it would be 2(b), 5(e), 8(h), continue... --->
<cfset output = output + totalRows>
</td>
</cfloop>
<!--- this little bit tells where to start the next row. if we just finished the first row output would be 2(b) --->
<cfset output = thisRow + 1>
</tr>
</cfloop>
</table>
</body>
</html>
최대 열 몇 개입니까? 테이블 구조를 바꿀 수 있습니까 (예 : 정규화)? 또한 사용중인 데이터베이스를 나타내는 질문 태그를 업데이트하십시오. – Leigh
테이블 열에 추가 또는 삭제가있을 수 있지만 행은 14 : 1 - 12 월과 GOAL 및 YTD로 유지됩니다. 그 다음에는 정상화되지 않습니다. 테이블 databse MS SQL 및 MySQL 것입니다. 고맙습니다 – dnut
당신은 정말로 SQL 서버와 MySQL을 모두 사용하고 있습니까? 복잡한 기능/운영자는 특정 공급 업체의 경향이 있습니다. 예를 들어 MS SQL에서는 '피벗 (pivot)'을 사용할 수 있습니다. 그러나 afaik MySQL은 아직 지원하지 않습니다. – Leigh