努力将 RS 的输出显示为水平表。
我有一个基于以下 SQL 的 RS
SQL = "SELECT INTRAY.TEAM, Count(INTRAY.DOC_GUID) AS NumDocs " & _
"FROM INTRAY INNER JOIN DOCUMENT ON INTRAY.DOC_GUID = DOCUMENT.GUID " & _
"WHERE DOCUMENT.DOC_TYPE = 'PNEW' " & _
"AND DOCUMENT.DATE_RECEIVED > '"& Year(FromDate) &"-"& Month(FromDate) &"-"& Day(FromDate) &"' " & _
"GROUP BY INTRAY.TEAM, INTRAY.MAIL_STATUS, INTRAY.FILE_SYSTEM " & _
"HAVING INTRAY.MAIL_STATUS = 'NT' AND INTRAY.FILE_SYSTEM ='B' " & _
"ORDER BY INTRAY.TEAM ;"
我在普通表格中显示结果,如下所示
<table border=1>
<tr>
<th>Team</th>
<th>Records</th>
</tr>
<%Do While Not RS.EOF %>
<tr>
<td><%=RS("TEAM")%></td>
<td><%=RS("NumDocs")%></td>
</tr>
<% RS.MoveNext
Loop%>
</table>
结果通常显示在垂直表中。返回 10 条记录,按 Team 排序。OPS1、OPS10、OPS2 等
请注意,由于 alpha 排序,10 在 1 之后,不知道如何修改。
只有 10 支球队可以在输出中,但有时并非所有球队都会有结果,所以表格只能返回 2 或 3 支球队。
我想创建一个表,其中包含每个可能的团队(1-10)的硬编码列标题,然后下一行是 NumDocs 的输出值
团队 1 10 2 3 4 5 6 7 8 9
结果 8 4 7 17 4 87 20 19 1 7
所以,然后我关闭记录集,然后重新打开它;
<%RS.Close%>
<br>
<%
RS.cursortype=adOpenKeyset
RS.Open SQL, IConn, 3, 3
RS.MoveFirst
%>
并写表;
<table border=1>
<th>Report</th>
<th>OPS1</th>
<th>OPS10</th>
<th>OPS2</th>
<th>OPS3</th>
<th>OPS4</th>
<th>OPS5</th>
<th>OPS6</th>
<th>OPS7</th>
<th>OPS8</th>
<th>OPS9</th>
<tr>
<td>Untouched New Records (total)</td>
<td>
<%If RS("Team") = "OPS1" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS1")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS10" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS1")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS2" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS2")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS3" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS3")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS4" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS4")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS5" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS5")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS6" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS6")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS7 " Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS7")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS8" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS8")
RS.MoveNext
End If %>
</td>
<td>
<%If RS("Team") = "OPS9" Then %>
<% Response.Write(RS("NumDocs"))
Else Response.Write("Not OPS9")
RS.MoveNext
End If %>
</td>
</tr>
</table>
它不起作用,我在输出中得到的只是“不是 OPSx”。
If 测试不起作用。
如果我将每个单元格修改为
<% Response.Write(RS("NumDocs"))
RS.MoveNext %>
然后它将写入值,但我需要测试 RS 中该行中 TEAM 的值,如果我将其修改为
<% If RS("Team") = "OPS1" Then
Response.Write(RS("NumDocs"))
End If
RS.MoveNext %>
它不起作用,什么也不写。
任何想法为什么 mty IF 不起作用?当我写出 TEAM 的值时,它们看起来没问题并且没有尾随空格。SQL Server 不接受 TRIM 函数