ACCESS 前五 统计 条件不相同 降序

freepw 2013-07-01 10:51:18
表:


<table border="0" align="center" cellpadding="0" cellspacing="1" class="TableBorder_1">
<tr>
<td height="30" colspan=3 align="center" class="TableTitle11"><b>不同种类数量最多的前五个站号</b></td>
</tr>
<tr>
<td align="center" class="TableRow2">排序</td>
<td align="center" class="TableRow2">站号</td>
<td align="center" class="TableRow2">数量</td>
</tr>

<%
sql="select top 5 [对应站号],count([种类]) as tj from [拖网卡片数据] where [种类] in (select b.[种类] from [拖网卡片数据] b where [种类]<>b.[种类] ) group by [对应站号] order by count([种类]) desc"
set rs=conn.execute(sql)
a=1
do while not rs.eof
%>

<tr>
<td align="center" class="TableRow2"><%=a%></td>
<td align="center" class="TableRow2"><%=rs("对应站号")%></td>
<td align="center" class="TableRow2"><%=rs("tj")%></td>
</tr>
<%
rs.movenext
a=a+1
loop
set rs=nothing
%>

</table>


上面我搞这个不对。。
...全文
158 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-07-02
  • 打赏
  • 举报
回复
sql="select top 5 * from ( select [对应站号],count([种类]) as tj from [拖网卡片数据] where [种类] in (select b.[种类] from [拖网卡片数据] b where [种类]<>b.[种类] ) group by [对应站号] )order by tj desc"
WWWWA 2013-07-02
  • 打赏
  • 举报
回复
用文本贴出记录及要达到的目的
WWWWA 2013-07-02
  • 打赏
  • 举报
回复
用文本贴出记录及要达到的目的
freepw 2013-07-02
  • 打赏
  • 举报
回复
引用 12 楼 wwwwb 的回复:
当然不对, 在ACCESS中,先运行下述语句,看看结果是否正确 select 对应站号,种类,count(*) as js from tt group by 对应站号,种类 存为VIEW1 SELECT * FROM VIEW1 A1 WHERE 5>(SELECT COUNT(*) FROM VIEW1 WHERE A1.对应站号=对应站号 AND A1.JS<=JS)
试了,结果不是我想要的哪种。应该 是我没有说清楚。我重发了一个帖子,你看一下:http://bbs.csdn.net/topics/390506485
wwwwb 2013-07-02
  • 打赏
  • 举报
回复
当然不对, 在ACCESS中,先运行下述语句,看看结果是否正确 select 对应站号,种类,count(*) as js from tt group by 对应站号,种类 存为VIEW1 SELECT * FROM VIEW1 A1 WHERE 5>(SELECT COUNT(*) FROM VIEW1 WHERE A1.对应站号=对应站号 AND A1.JS<=JS)
freepw 2013-07-02
  • 打赏
  • 举报
回复
引用 8 楼 wwwwb 的回复:
存为查询,名称VIEW1
sql="SELECT * FROM (select [对应站号],[种类],count(*) as tj from [拖网卡片数据] group by [对应站号],[种类]) as A1 WHERE 5>(SELECT COUNT(*) FROM A1 as B1 WHERE A1.[对应站号]=B1.[对应站号] AND A1.tj<=B1.tj)" 写成这样不对。。
freepw 2013-07-02
  • 打赏
  • 举报
回复
引用 8 楼 wwwwb 的回复:
存为查询,名称VIEW1
可以给个完整的?菜鸟一个。谢谢。
freepw 2013-07-02
  • 打赏
  • 举报
回复
引用 7 楼 freepw 的回复:
不好意思,存为VIEW1 这个是什么意思。
可以给个完整的?菜鸟一个。谢谢。
wwwwb 2013-07-02
  • 打赏
  • 举报
回复
存为查询,名称VIEW1
freepw 2013-07-02
  • 打赏
  • 举报
回复
不好意思,存为VIEW1 这个是什么意思。
wwwwb 2013-07-02
  • 打赏
  • 举报
回复
select 对应站号,种类,count(*) as js from tt group by 对应站号,种类 存为VIEW1 SELECT * FROM VIEW1 A1 WHERE 5>(SELECT COUNT(*) FROM VIEW1 WHERE A1.对应站号=对应站号 AND A1.JS<=JS)
freepw 2013-07-02
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
用文本贴出记录及要达到的目的


就是统计:不同种类数量最多的前五个站号
freepw 2013-07-02
  • 打赏
  • 举报
回复
我用了3楼的,还是不行, sql="select top 5 [对应站号],count([种类]) as tj from [拖网卡片数据] where [种类] in (select b.[种类] from [拖网卡片数据] b where [种类]<>b.[种类] ) group by [对应站号] order by count([种类]) desc" 标红的地方有问题。把[种类]改成固定值,就有效果了。我是想实现统计[种类]不相同的个数,以group by [对应站号] 分组。ACCESS的,

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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