一个排序的问题,各位老大帮个忙?

eaglepie 2012-05-17 02:19:51
比如现在是这样的情况
A表
序号 类名 总数(这个是动态的,表中不存在此项
1 A 【15 】
2 B 【12 】
3 C 【18 】
4 D 【9 】


B表
序号 名称 分类ID
1 a 1
2 c 3
3 a 1
4 d 4
............
x ax 2
可以算出B表每个分类的个数,比如A 15条,B
12条,C 18条,D 9条

说明,所含的记录数(这个是动态的)这个是另一个表中此类的记录数,这个是动态变化的。

现在我要根据B表每个分类所含记录条数的倒序来排列,排列后的结果为

A表
序号 类名 所含的记录数(这个是动态的,表中不存在此项)
3 C 【18 】
1 A 【15 】
2 B 【12 】
4 D 【9 】

各位能看明白吧,这个怎么写SQL语句啊,不要存储过程,谢谢各位!
...全文
180 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eaglepie 2012-05-19
  • 打赏
  • 举报
回复
哎,其实呢,是我自己没说清楚,我这是改别人的access数据库,有些郁闷,这个数据库的语法和sql server,mysql还有很大区别,就这同样的功能实现,我测了,思路差不多,但是具体语法有些不一样,还是谢谢楼上的各位了,关键还是要去相应数据的查询分析器里去试。
libystu 2012-05-18
  • 打赏
  • 举报
回复
SELECT 序号 ,类名,COUNT(名称)AS num FROM A表
left join B表 on A表.类名 = B表.类名
GROUP BY A表.类名
ORDER BY num DESC
初薰 2012-05-18
  • 打赏
  • 举报
回复
试试这个,刚刚测试成功了的
SELECT 序号 ,COUNT(名称)AS num FROM A表 WHERE 序号 IN
(
SELECT 序号 FROM B表
)
GROUP BY A表.序号
ORDER BY num DESC
eaglepie 2012-05-18
  • 打赏
  • 举报
回复
谁来再帮看看啊?
lhqrevenco 2012-05-18
  • 打赏
  • 举报
回复
上面有一段写错了
insert t_B values('a',1)

insert t_B values('c',3)

insert t_B values('a',1)

insert t_B values('d',4)
lhqrevenco 2012-05-18
  • 打赏
  • 举报
回复
下面是我亲自试验的,不知是不是你想要的结果
create table t_B (
i_id int identity(1,1),
c_name char(10),
i_type int

)

insert t_B values('a',1)

insert t_B values('c',c)

insert t_B values('a',1)

insert t_B values('d',4)

select * from t_B

i_id c_name i_type
1 a 1
2 c 3
3 a 1
4 d 4

select i_type, c_name,count(1) as num from t_B group by i_type,c_name order by num desc
序号 类别 数量
1 a 2
3 c 1
4 d 1
eaglepie 2012-05-17
  • 打赏
  • 举报
回复
不行啊,老是提示语法错误
百年树人 2012-05-17
  • 打赏
  • 举报
回复
select 序号,类名
from a
order by (select count(1) from b where a.序号=b.分类ID) desc

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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