usp_GetLicenseUserGroups.sql
1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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