关于SQL问题

huyu0123 2010-06-08 05:13:42
有一个企业表和一个样品
根据企业的ID可以发布多个样品,这些样品有可能是连续发的
在列表上显示出来的话,很有可能都是显示一个企业发布的样品,这样不行,你看可不可以,每个企业只显示一个样品
比如说一页显示33个样品,也是就是33个企业的样品(都显示一个),如果还有余下的企业以此例推,到下一页,如果根据企业ID发布的样品都显示一个完之后,接着显示样品的第二个,按照上面的显示方法以此例推
企业表Corpoation_cn 字段 cid
样品表Product_cn 字段 id,cid,pname,pic

比如企业A B各发布5个产品
先取出
A 1 B 1 然后
A 2 B 2
A 3 B 3
一直到最后

同理也就是先显示每个企业发布的最新的一个产品,直到显示完所有企业之后再显示每个企业的第二个产品
...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huyu0123 2010-06-08
  • 打赏
  • 举报
回复
dawugui

(爱新觉罗.毓华)

如果先根企业的等级,再根据样品发布先衙顺序的话,也就是等级高的在前面,其次是样品发早的在前面
huyu0123 2010-06-08
  • 打赏
  • 举报
回复
dawugui

(爱新觉罗.毓华)
px= row_number() 有错误
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]

SQL code
--sql 2005
select m.cid,n.id,n.pname,n.pic,
px= row_number() over(partition by n.cid order by n.id)
from Corpoation_cn m , Product_cn n
where m.cid = n.cid
order by px , m.cid
[/Quote]

up
huyu0123 2010-06-08
  • 打赏
  • 举报
回复
dawugui

(爱新觉罗.毓华)
可否把你加下我的QQ627605371,想请教下
csw200201 2010-06-08
  • 打赏
  • 举报
回复
SQL2K5/2K8:



select
a.id, a.cid, a.pname, a.pic,
row_number() over (partition by b.cid order by a.id)
from
product_cn a inner join corporation_cn b on
a.cid=b.cid
order by
5
dawugui 2010-06-08
  • 打赏
  • 举报
回复
--sql 2005
select m.cid,n.id,n.pname,n.pic,
px= row_number() over(partition by n.cid order by n.id)
from Corpoation_cn m , Product_cn n
where m.cid = n.cid
order by px , m.cid
dawugui 2010-06-08
  • 打赏
  • 举报
回复
--sql 2000
select m.cid,n.id,n.pname,n.pic,
px=(select count(1) from Product_cn where cid = n.cid and id < n.id) + 1
from Corpoation_cn m , Product_cn n
where m.cid = n.cid
order by px , m.cid

22,209

社区成员

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

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