创建具有多对多关系的存储过程,从而提供适当的响应

时间:2014-11-27 14:39:19

标签: sql tsql stored-procedures many-to-many

我试图为我的学校项目创建一个使用Model First的存储过程。 我想制作一个SP,用于返回大多数订单的游戏列表,作为顶级列表'可以这么说,但在搜索类似的线程后无法弄明白。参数@antal应返回不同结果的范围以返回。所以,让我说我发送它应该返回5个产品,3个应该返回3个产品等等...

因为我是新手,所以我被困住了。到目前为止的代码是:

use SpelAffarenDatabas
go
create procedure [dbo].[GetTopListGames]
(
@antal int
)
as
select distinct top (6) p.Id, p.Name, p.Orders, k.Name, g.Name from ProduktSet as p
left join ConsoleProduct as kp
on p.Id = kp.Product_Id
left join ConsoleSet as k
on kp.Console_Id = k.Id
left join ProductGenre as pg
on p.Id = pg.Product_Id
left join GenreSet as g
on pg.Genre_Id = g.Id
group by p.Id, p.Name, p.Orders, k.Name, g.Name

那么我该如何得到一个适当的回应,给我一个正确的回应,我想这将是不同的实体?

1 个答案:

答案 0 :(得分:2)

select distinct top (@antal) p.Id, p.Name, p.Orders, k.Name, g.Name from ProduktSet as p
left join ConsoleProduct as kp
on p.Id = kp.Product_Id
left join ConsoleSet as k
on kp.Console_Id = k.Id
left join ProductGenre as pg
on p.Id = pg.Product_Id
left join GenreSet as g
on pg.Genre_Id = g.Id
group by p.Id, p.Name, p.Orders, k.Name, g.Name
order by p.Orders Desc