注册 登录
编程论坛 ASP技术论坛

我想去掉重复记录

wenhao 发布于 2008-01-20 11:11, 2234 次点击
我用的是下面Sql语句没有去掉

sql="select Distinct PP_Name from PP_Class where BigClassName='" & selclass & "'"
12 回复
#2
madpbpl2008-01-20 18:25
这样写法应该没错,不知道楼主想实现什么样的效果,能否用简单列表来说明一下。
#3
szb1232008-01-20 20:09
楼主的sql语句没有错误,但distinct 只是在select后的结果中没有重复,在原来的表中还是会有重复的
#4
wenhao2008-01-21 08:49
哦,是这样的
我想在asp页面中的下拉菜单中显示
数据库表PP_Class 中的记录,字段PP_Name 有重复值出现,
目的是让记录按PP_Name 字段无重复值全部显示出来
#5
madpbpl2008-01-21 10:36
显示记录,是不是只显示PP_Name字段,还有楼主能否给个简单的表,例如
id              bigclassname              pp_name
1                             1                               1
2                             1                               2
3                             1                               2
4                            2                                3
#6
wenhao2008-01-21 11:09
对啊
我的表里就是这几个字段
id              bigclassname         small                              pp_name
1                    电脑产品                台式机                              联想
2                    电脑产品        台式机               华硕
3      电脑产品    笔记本        联想 
4     电脑产品   服务器        联想
5     办公设备    打印机       理光

按大类(bigclassname)显示,不管(small)字段,只要(pp_name)字段值不重复就可了.
我用的语句:
sql="select Distinct PP_Name from PP_Class where BigClassName='" & selclass & "'"
#7
madpbpl2008-01-21 11:26
id              bigclassname         small                              pp_name
1                    电脑产品        台式机               联想
2                    电脑产品        台式机               华硕
5     办公设备    打印机       理光
楼主想要的结果是这样吗?是想把这4个字段都显示出来吗?
#8
wenhao2008-01-21 11:46
字段不用全显示
只显示字段pp_name就可以

语句后面我给了个条件按大类(Bigclassname)显示

4个字段都显示出来与只显示一个有区别吗
#9
madpbpl2008-01-21 12:00
是的,如果要显示4个字段,就不能用distinct,而需要用group by
如果只是显示1个字段,则用distinct就可以了。
#10
madpbpl2008-01-21 12:08
<!--#include file="conn.asp"-->
<%
set rs=Server.CreateObject("adodb.recordset")
sql ="select distinct pp_name from pp_class where bigclassname='电脑产品'"
rs.open sql,conn,1,1
%>
<%
do while not rs.eof
%>
<%=rs("pp_name")%><br>
<%
rs.movenext
loop
rs.close
set rs=nothing
%>
按楼主给的字段,我简单写了一个代码,测试已通过,达到楼主说的想法了,不知道楼主的问题具体出在哪里?对于6#给出的表不知道楼主想搜索出什么样的结果?
#11
wenhao2008-01-21 16:33
就是这样的结果
id                    pp_name
1                   联想
2                    华硕
5     理光
#12
wenhao2008-01-21 16:38
我写的也是这样的
但是还是有(PP_Name)字段和重复记录
郁闷啊
上面的代码没有重复的吗
用group by 是怎么写的????
#13
madpbpl2008-01-21 18:15
因为你有2个字段了,id也是一个字段啊,虽然是自动编号,但也是一个字段的,
改成我这样试试
select  min(id) as min_id,pp_name from pp_class where bigclassname='" &selclass& "'"
1