求一个算法,对基础好的人应该还是简单的!在线等!

baoxiaohua 2006-01-20 05:27:45
有个数据库:rate.mdb
有张表:total
ID SX
1 3
2 4
3 3
4 4
5 4
6 2
7 5
现在我想把数据提取出来,但是重复的只提取一次,
最后在页面上应该是
3
4
2
5
本人只懂写简单的:怎么在这基础上进行加工呢?因为我这是把所有的数据都提取出来了!
<%@ Language=Jscript %>
<HTML>
<BODY>
<%
var conn = Server.CreateObject("ADODB.Connection");
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" +
Server.MapPath("rate.mdb"));
rs = conn.Execute( "Select * from total " );
rstotab(rs);
conn.close();
%>
<form id="form1" name="form1" method="post" action="">
<%
function rstotab(rs)
{
Response.write ("<select name='select'>");

while (!rs.Eof)
{

Response.Write ("<option>" + rs(1) + "</option>");
rs.movenext()
}
Response.write ("</select>");
}
%>
</form>
</BODY>
</HTML>


...全文
250 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
baoxiaohua 2006-01-21
  • 打赏
  • 举报
回复
昨天调了一晚还是不行,希望那位高手出来帮我一下
如果可以用别方法写能实现也可以了!那外高手帮我写写吗?
不一定要在我那基础上改呀!能实现就好?不过不一顶是数字,也要可能是字母就对了!如:
表:sx
a
c
d
c
a
最好提取出来应该是 a c d
那位高手解决了,我另开个版块再送50分
期待高手来解决!本来真的急需这功能.
baoxiaohua 2006-01-21
  • 打赏
  • 举报
回复
好了,解决了,谢谢 Kevin_jun()与 boyd1985(http://www.ahbvc.cn:8080)
还有其他各位!
baoxiaohua 2006-01-21
  • 打赏
  • 举报
回复
to Kevin_jun() 是快实现了
因为页面可以显示了
可以都了一个"NULL"
页面实现边成:
NULL
1
2
3

我现在要怎么去掉这个NULL呢
好了做到底,怎么去掉这个NULL呢
Kevin_jun 2006-01-21
  • 打赏
  • 举报
回复
上面几位仁兄的SQL都是可以的,但是有的不行
你的ID是唯一的,
group by id,sx是按id与sx组合的不同来分,所以count(*)
或count(id,sx)>1找不到记录的.
用distinct应该是可以的,但只是返回一个sx值域.
我上面的也只是返回一个sx字段的值.所以用rs(0)才能找,rs(1)游标找不到的
Kevin_jun 2006-01-21
  • 打赏
  • 举报
回复
Response.Write ("<option>" + rs(1) + "</option>");

找到你要的答案了,你的rs(1)得到什么,你的记录集里只有一个fields.
你改变为rs(0)试试
Kevin_jun 2006-01-21
  • 打赏
  • 举报
回复
你只要取不同的是不
就用
SELECT sx FROM yourTableName GROUP BY sx
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
QQ上聊,48430935
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
晕,
baoxiaohua 2006-01-20
  • 打赏
  • 举报
回复
boyd1985(http://www.ahbvc.cn:8080你这招看来也不行
还是提取不出数据呀
baoxiaohua 2006-01-20
  • 打赏
  • 举报
回复
自然都测通过了,反正跟IIS配置没关系了,跟权限也没关系
我那个循环体已经可以正常输出的,应该如果我用Select * from total where sx=3
那么就可以把所有等于3的数值都取出来呀
你个方法我立刻去试一下!
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
既然rs = conn.Execute( "select id from total group by id,sx having count(*)>1" );能出现,

那顺便再加上SX

rs = conn.Execute( "select id,sx from total group by id,sx having count(*)>1" );
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
你这样做不是自找麻烦?干嘛要去调用这个函数,况且他的意义并不是很大,不就是想在下拉框里设置几个值嘛,哎。

你先避开这些东西,直接输出rs(...)看有没有内容,用FOR循环做一下看,如果能正常输出那表示查询语句并不存在问题了
baoxiaohua 2006-01-20
  • 打赏
  • 举报
回复
刚刚贴错了
应该是ADODB.Recordset 错误 '800a0cc1'

在对应所需名称或序数的集合中,未找到项目。

/7-04.ASP,行 15
baoxiaohua 2006-01-20
  • 打赏
  • 举报
回复
其实我也觉的怪呀
rstotab(rs)是拿来调用下面的函数的
function rstotab(rs)
{
Response.write ("<select name='select'>");

while (!rs.Eof)
{

Response.Write ("<option>" + rs(1) + "</option>");
rs.movenext()
}
Response.write ("</select>");
}
其实功能有点多,别的功能都弄好了,就是本贴所提的这种功能还没调出来
刚刚我把这写函数都删了,发现用rs = conn.Execute( "select id from total group by id,sx having count(*)>1" );
会出现

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access Driver] SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。

/7-04.ASP,行 8
这个问题
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
rstotab(rs);
你这个东西是什么?
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
怪事了,怎么什么方法都不行?
baoxiaohua 2006-01-20
  • 打赏
  • 举报
回复
baby97(小雕(Asp→.Net中...) 你的方法同样也不行
银狐被占用 2006-01-20
  • 打赏
  • 举报
回复
select distinct sx from total
baoxiaohua 2006-01-20
  • 打赏
  • 举报
回复
换id了,这次页面是能正常显示了
可惜没内容,也就是没提取出一条数据
竹林听雨2005 2006-01-20
  • 打赏
  • 举报
回复
那你将*改成字段名,比如id,再试试
加载更多回复(8)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧