一个ASP连接aceess或SQL查询统计输出的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:21:46
二季度某文学社成员发表稿件记录登记如下表A:
日期 姓名 类别 文章题目
4月5日 张三 杂文类 略
4月8日 李四 散文类 略
4月12日 李四 诗歌类 略
5月6日 张三 诗歌类 略
5月9日 张三 诗歌类 略
5月11日 李四 散文类 略
5月18日 李四 散文类 略
5月23日 王五 诗歌类 略
6月9日 张三 杂文类 略
6月16日 李四 诗歌类 略
6月18日 李四 散文类 略
6月29日 王五 散文类 略

要用ASP显示5月统计报表如下:

姓名 诗歌类 散文类 杂文类 ……
张三 2 0 0
李四 0 2 0
王五 1 0 0
……

代码如下:
<!--#include file="conn.asp"-->
<%
SQL="xxxxxxxxxxxxx"
dim rs
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,1
%>
其中的xxxxxxxxxxxxx处应怎样写(大概要用到子查询)?以及建立记录集后下面的循环显示代码又怎么写?
我看看……

自己修改一下数据库的字段名,符合你的真实字段命,这样就可以运行了!
至于,类别,你看懂了SQL之后, 还有什么类别:诗歌类 , ??类
就自己添加一下吧!

<%
dim rs ,SQL , th , tbody

SQL = SQL & "select TName as 姓名 ,"
SQL = SQL & "( select count(*) from Acticle where 姓名=TName and 类别='诗歌类') as 诗歌类 ,"
SQL = SQL & "( select count(*) from Acticle where 姓名=TName and 类别='散文类') as 散文类 ,"
SQL = SQL & "( select count(*) from Acticle where 姓名=TName and 类别='杂文类') as 杂文类 "
SQL = SQL & "from (select distinct 姓名 as TName from Acticle)"

Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open SQL,conn,1,1

th=""
isth=true

while not rs.EOF

tbody = tbody & "<tr>"

for i = 0 to rs.Fields.Count - 1
if isth then th = th & "<th>" & rs.Fields(0).Name & "</th>"