我有一个要求得到以下的东西。
有分配给类别的横幅。每个类别的横幅都是动态的。
假设我在一个类别中有100个产品,在那个类别中有3个横幅。然后将如下所示。
第1页: 1-10产品和Banner1
第2页: 11-20产品和Banner2
第3页: 21-30产品及Banner3
第4页: 31-40产品和Banner1
第5页: 31-40产品和Banner2
第6页: 41-50产品和Banner3
。。
我需要一个查询来选择每个页面中的一个横幅。
有人能帮我做到这一点吗?
用于参考的数据库方案
dbo.Category (Id int,CategoryName Varchar(100))
dbo.Product (Id int,ProductName varchar(100),Description varhcar(max),ImageLink varchar(100))
dbo.Category_Product_Mapping (CategoryId int,ProdcutId int)
dbo.Banner(Id int,ImageLink varchar(100),DisplayOrder int,CategoryId int)
发布于 2018-02-15 10:23:03
尝尝这个,
create table #product (productid int)
insert into #product values (9),(19),(29)
,(39),(49),(59),(69),(79),(89),(99),(100),(111)
,(121)
DECLARE @rangesize INT = 10
DECLARE @numberofBanner INT = 3
DECLARE @Margin INT = @rangesize * @numberofBanner
SELECT productid
,CASE
WHEN productid < @Margin
THEN (productid / @rangesize) + 1
ELSE (productid / @rangesize) % @numberofBanner + 1
END bannerid
FROM #product
DROP TABLE #product或者,您可以创建一个临时表,如下所示
create table #bannerrange (FromID int,ToID int,Bannerid int)
--then join with product table
drop table #producthttps://stackoverflow.com/questions/48803181
复制相似问题