我有这个存储过程在MSSQL2012中显示单个标记(分页)。
有3个表,StockItems,文件和标签 每个StockItem可以包含更多标签和一个图像文件。
如何通过返回相关的stockitem和图像文件来修改此存储过程以返回多标签的搜索?
CREATE procedure [dbo].[GetTagPaged](
@KeyWordFilter varchar(50),
@PageNumber int = 1)
as
begin
declare @PageSize int = 50
declare @FirstRow int
declare @LastRow int
declare @TotalRows int
SELECT
@FirstRow = (@PageNumber - 1) * @PageSize + 1,
@LastRow = (@PageNumber - 1) * @PageSize + @PageSize;
SELECT
@TotalRows = COUNT(*)
FROM
[StockItem] q
INNER JOIN
[Tags] k ON q.id = k.StockItemId
INNER JOIN
[Files] qi ON q.Id = qi.ItemId
WHERE
k.Keyword = @KeyWordFilter;
with Results as
(
SELECT
q.*, qi.FileName
, ROW_NUMBER() over (Order By q.Rating DESC) as Instance_Count
, @TotalRows as the_Count
FROM
[StockItem] q
INNER JOIN
[Tags] k ON q.id = k.StockItemId
INNER JOIN
[Files] qi ON q.Id = qi.ItemId
WHERE
k.Keyword = @KeyWordFilter
)
select *
from results
where Instance_Count between @FirstRow and @LastRow
order by Instance_Count asc
end