usp_GetLicenseUserGroups.sql 1.58 KB
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[usp_GetLicenseUserGroups]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[usp_GetLicenseUserGroups]
GO

-- ====================================================  
-- Author:  Magic Software  
-- Create date: 09-Feb-2018  
-- Description: To get all user groups of a license
-- ====================================================  
create PROCEDURE [dbo].[usp_GetLicenseUserGroups] 
	-- Add the parameters for the stored procedure here
	@LicenseId int, @pageNo int, @pageLength int, @recordCount int out
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    --Get the records on the basis of parameters page length and page number rows
	SELECT * FROM (
    select row_number() OVER (order by UG.Id) AS RowNo, UG.*, UGU.TotalUsers from UserGroup UG left outer join 
	(select count(*) as TotalUsers, UserGroupId from UserGroupToAIAUser 
	group by UserGroupId) UGU on UG.Id = UGU.UserGroupId where UG.LicenseId = @LicenseId
	) TB
	WHERE TB.RowNo > @pageLength * (@pageNo - 1) and TB.RowNo <= @pageLength * @pageNo;
	
	--Calculate total number of records
	select @recordCount = count(ResultTable.Id) from (
	select UG.*, UGU.TotalUsers from UserGroup UG left outer join 
	(select count(*) as TotalUsers, UserGroupId from UserGroupToAIAUser 
	group by UserGroupId) UGU on UG.Id = UGU.UserGroupId where UG.LicenseId = @LicenseId) as ResultTable;

END

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO