求A表的数量由B表的字段来控制,不知道怎么写

ChinaXtHuLang 2015-09-25 03:52:11
主表A,有字段ClassId
副表B,有字段:Id,和A表ClassId是关联的,还个字段是:MaxNum是用来控制A表显示数量

求是SQL语句是:
查询主表关联副表,利用MaxNum来显示数量

Select a.* From a Left Join b On a.ClassId = b.Id
这是普通的查询。

怎么利用MaxNum控制数量?
...全文
227 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yooq_csdn 2015-09-28
  • 打赏
  • 举报
回复
2005 或 2008 用ROW_NUMBER() over() 按楼上的方法肯定可以的
等不到来世 2015-09-28
  • 打赏
  • 举报
回复
Select a.* From a 
Left Join b On a.ClassId = b.Id
Left Join (select cnt=number from master..spt_values where type='p') c On b.MaxNum>c.cnt
ChinaXtHuLang 2015-09-28
  • 打赏
  • 举报
回复
引用 8 楼 yooq_csdn 的回复:
2005 或 2008 用ROW_NUMBER() over() 按楼上的方法肯定可以的
具体是写法啊?
xqchenxue2 2015-09-26
  • 打赏
  • 举报
回复
我写错了,是Id,总之是没问题的。
ChinaXtHuLang 2015-09-25
  • 打赏
  • 举报
回复
求大神帮忙看看看啊 SQL 2005 A表中的是ClassId 是int类型 B表中的是字段是:Id,Bname,MaxNum Id,MaxNum是int类型 A表中的:ClassId 与 B表中是ID是关联的。用B表中的MaxNum来控制A表的显示数量
ChinaXtHuLang 2015-09-25
  • 打赏
  • 举报
回复
引用 4 楼 xqchenxue2 的回复:
select A.* from A a join (select ROW_NUMBER() over(partition by ClassId order by ClassId) rcnt,B.classid,B.MaxNum from B) t on a.id=t.classid where rcnt <=t.MaxNum
不行额。。B表没有ClassId。。。 CSDN。。我勒个去。。打开这个页面。弄了我20分钟才打开。要不要这么卡啊。。
xqchenxue2 2015-09-25
  • 打赏
  • 举报
回复
select A.* from A a join (select ROW_NUMBER() over(partition by ClassId order by ClassId) rcnt,B.classid,B.MaxNum from B) t on a.id=t.classid where rcnt <=t.MaxNum
ChinaXtHuLang 2015-09-25
  • 打赏
  • 举报
回复
引用 1 楼 yooq_csdn 的回复:
sqlserver 什么版本?
2005行吗?不行2008是我这边最高的。
ChinaXtHuLang 2015-09-25
  • 打赏
  • 举报
回复
引用 1 楼 yooq_csdn 的回复:
sqlserver 什么版本?
2005
yooq_csdn 2015-09-25
  • 打赏
  • 举报
回复
sqlserver 什么版本?

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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