با عرض سلام خدمت اساتید محترم
من کد زیر نوشتم
ALTER PROCEDURE [dbo].[SPSelectReport4] (@StringWhereParameter nvarchar(4000))
AS
BEGIN
SET NOCOUNT ON;
-- َ Begin Of Transaction
begin tran
declare @Query nvarchar(max)
set @Query='
select * from (
((SELECT Id,[Mesc]
,[Line]
,[Unit]
,[Description]
,[ST_CODE]
,[PbsNo]
,[PbsDate]
,[PbsQty]
,[PbsQtyRec]
,[QtyConsum1]
,[QtyConsum2]
,[QtyConsum3]
,[QtyConsum4]
,[QtyConsum5]
,[Type]
,[InvQty]
,[TypeRequest]
,[HeaderId]
FROM [MyMaterialDB].[dbo].[Report4]
WHERE headerid IN(SELECT HeaderId FROM [MyMaterialDB].[dbo].[Report4] WHERE line=''H'''+ @StringWhereParameter+'))
UNION
(
(SELECT Id,[Mesc]
,[Line]
,[Unit]
,[Description]
,[ST_CODE]
,[PbsNo]
,[PbsDate]
,[PbsQty]
,[PbsQtyRec]
,[QtyConsum1]
,[QtyConsum2]
,[QtyConsum3]
,[QtyConsum4]
,[QtyConsum5]
,[Type]
,[InvQty]
,[TypeRequest]
,[HeaderId]
FROM [MyMaterialDB].[dbo].[Report4]
WHERE mesc IN(SELECT mesc FROM [MyMaterialDB].[dbo].[Report4] WHERE line=''I''' +@StringWhereParameter+'))
UNION
(SELECT Id,[Mesc]
,[Line]
,[Unit]
,[Description]
,[ST_CODE]
,[PbsNo]
,[PbsDate]
,[PbsQty]
,[PbsQtyRec]
,[QtyConsum1]
,[QtyConsum2]
,[QtyConsum3]
,[QtyConsum4]
,[QtyConsum5]
,[Type]
,[InvQty]
,[TypeRequest]
,[HeaderId]
FROM [MyMaterialDB].[dbo].[Report4]
WHERE mesc IN(SELECT HeaderId FROM [MyMaterialDB].[dbo].[Report4] WHERE line=''I'''+@StringWhereParameter+')
))))
Order by Mesc,Line,unit'
--
exec(@Query)
if @@error = 0
Commit Tran
Else
rollback tran
End
این کوئری تعداد رکوردهای خیلی زیادی رو بر می گردونه می خواستم که با استفاده از ROW_NUMBER() عملیات Paging رو انجام بدم ممنون میشم اساتید محترم راهنمایی کنند.