求教一条 SQL 语句

wplian 2003-10-15 07:06:36
有两个表 a 和 b
a 表里有字段 c d
b 表里有字段 c e
现要求如下:
1. a.d > 0
2. 查出的记录不超过 n 条
3. 根据以上查出的每条 a 记录再查出当 a.c=b.c 时在 b 表中存在的记录数 m
4. 将 m 和 a 都作为查询结果
5. 将查询结果按 m 降序,再按 a.d 升序排列

注:若使用多条语句查询也可,但要考虑到效率问题,数据库中记录数可能很多
...全文
40 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wplian 2003-10-16
  • 打赏
  • 举报
回复
好像只有 fetch first n rows only 这里不能通过,能给点详细的信息吗?多谢了。
m505 2003-10-16
  • 打赏
  • 举报
回复
fetch first n rows only不能用在这里,但是好像可以放在view里,如果没记错
wplian 2003-10-15
  • 打赏
  • 举报
回复
明天到公司试试
zipuzhou 2003-10-15
  • 打赏
  • 举报
回复
select c.c,count(b.e) f from b,(select c,d from a where d>0 fetch first n rows only) c where c.c=b.c group by c.c order by f desc,c.c asc
这样可以吗?
wplian 2003-10-15
  • 打赏
  • 举报
回复
顺便说一下,本人用的是 HQL ,若写成 HQL 更好。

分数不是问题,可以再加,希望大家踊跃回答。

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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