这是我的代码
alter PROCEDURE [dbo].[GetServiceRequestforLead]
@professionalArea nvarchar (35) = '',
@status nvarchar (15) = '',
@experience nvarchar (15) = '',
@PageNumber BIGINT = 1,
@PageSize BIGINT =20,
@userid bigint = 0
AS
BEGIN
SELECT *
FROM (
SELECT Row_number() OVER (ORDER BY sc.Addeddate DESC) AS Row, sc.*
, TotalRows = Count(*) OVER()
FROM (
select Mod_UserDetails.Email as LeadEmailId, Mod_UserDetails.ID as LeaduserId
, ProfessionType, Mod_UserDetails.FirstName as LeadFirstName, Mod_UserDetails.LastName as LeadLastName
, Mod_UserDetails.PhoneNo1 as LeadMobile
, f.*
from Lead_RequestForm f
inner join Lead_ProfessionalArea on Lead_ProfessionalArea.ID = f.Profession
left join ServiceProviderRequestMapping on f.RequestId = ServiceProviderRequestMapping.RequestId
left join mod_userdetails on mod_userdetails.ID = ServiceProviderRequestMapping.Leaduserid
where f.ExperienceRequired like '%'+@experience+'%'
AND f.Status like '%' + @status + '%'
AND Lead_ProfessionalArea.ProfessionType like '%'+ @professionalArea +'%'
AND (ServiceProviderRequestMapping.IsDeleted is null OR ServiceProviderRequestMapping.IsDeleted = 0)
) sc
) AS query
WHERE row > ( @PageSize *( @PageNumber -1))
AND row <= ( @PageSize * @PageNumber )
END
通过执行此操作,我为RequestId
表的Lead_RequestForm f
列获得了一行以上。数据在两行中都是唯一的,但要求ID相同。我只想获取具有相同Requestid列的第一条记录。
我在这里添加了捕捉,请求ID列具有重复值,我只希望一个带请求ID的roq,所以只想选择第一个。
答案 0 :(得分:0)
您可以执行以下操作-
alter PROCEDURE [dbo].[GetServiceRequestforLead]
@professionalArea nvarchar (35) = '',
@status nvarchar (15) = '',
@experience nvarchar (15) = '',
@PageNumber BIGINT = 1,
@PageSize BIGINT =20,
@userid bigint = 0
AS
BEGIN
Select Tb.*
from
(SELECT t.*, row_number() OVER (partition by RequestId order by Rowid) as seq_nbr
FROM (
SELECT Row_number() OVER (ORDER BY sc.Addeddate DESC) AS Row, sc.*
, TotalRows = Count(*) OVER()
FROM (
select Mod_UserDetails.Email as LeadEmailId, Mod_UserDetails.ID as LeaduserId
, ProfessionType, Mod_UserDetails.FirstName as LeadFirstName, Mod_UserDetails.LastName as LeadLastName
, Mod_UserDetails.PhoneNo1 as LeadMobile
, f.*
from Lead_RequestForm f
inner join Lead_ProfessionalArea on Lead_ProfessionalArea.ID = f.Profession
left join ServiceProviderRequestMapping on f.RequestId = ServiceProviderRequestMapping.RequestId
left join mod_userdetails on mod_userdetails.ID = ServiceProviderRequestMapping.Leaduserid
where f.ExperienceRequired like '%'+@experience+'%'
AND f.Status like '%' + @status + '%'
AND Lead_ProfessionalArea.ProfessionType like '%'+ @professionalArea +'%'
AND (ServiceProviderRequestMapping.IsDeleted is null OR ServiceProviderRequestMapping.IsDeleted = 0)
) sc
) AS query
WHERE row > ( @PageSize *( @PageNumber -1))
AND row <= ( @PageSize * @PageNumber )
)t
)Tb
where Tb.seq_nbr = 1
END