これが私が持っているサンプルアクセスクエリです(query ref / name-abovequery)
select column_date, sum(field1), sum(field2) from table
group by column_date
union all
select 'Total' as column_date, sum(field1), sum(field2) from table
aspの以下のコードを使用してブラウザでSQLクエリにアクセスしようとすると、見出しのみが表示されます。
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "odbcdatasourcename"
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * from abovequery"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
上記のクエリの出力をテーブルにコピーして同じaspコードを使用すると、正常に機能することに注意してください。したがって、明らかに、これはaspで「UNION」クエリを実行する際の問題です。これに対する解決策はあるのだろうか。クロス集計クエリを実行しようとすると、同じ問題が発生します。
New:これは私が今試したものです
- ただし、合計を含む最後の行は、他のメインデータ行と正しく整列されていません。
これが私が今作成したサンプルアクセスクエリです
最初のクエリ-query1
select column_date, sum(field1), sum(field2) from table
group by column_date
2番目のクエリ-query2
select 'Total' as column_date, sum(field1), sum(field2) from table
aspコード
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "odbcdatasourcename"
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * from query1"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "odbcdatasourcename"
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * from query2"
rs.Open sql, conn
%>
<table border="1" width="100%">
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
これは、アライメントの問題を修正するための3回目の試みです
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "odbcdatasourcename"
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * from query1"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * from query2"
rs.Open sql, conn
%>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>