Expand|Select|Wrap|Line Numbers
- ID ParentID IsLeft IsRight joingdate
- Ramesh123 NULL NULL NULL 2014-01-03 16:31:15.000
- Sonu Ramesh123 1 NULL 2014-01-03 16:45:21.000
- Pawan kumar Ramesh123 NULL 1 2014-01-04 16:50:23.000
- Ravi123 Sonu 1 NULL 2014-01-04 17:03:22.000
- Vineet123 Sonu NULL 1 2014-01-04 17:26:01.000
- dev123 Ravi123 1 NULL 2014-01-05 19:35:16.000
- Mukesh123 Ravi123 NULL 1 2014-01-05 19:40:41.000
- poonam123 Vineet123 1 NULL 2014-01-05 19:49:49.000
- monu Pawan kumar 1 NULL 2014-01-05 17:32:58.000
- Arti123 Pawan kumar NULL 1 2014-01-05 19:54:35.000
Expand|Select|Wrap|Line Numbers
- CREATE proc [dbo].[count_pairs]
- (
- @ParentID nvarchar(50)
- )
- as
- begin
- Declare @ParentSUM SMALLINT = 0
- Declare @SubLeftID nvarchar(50)
- Declare @SubRightID nvarchar(50)
- SELECT @SubLeftID = CASE WHEN [IsLeft] = 1 THEN [ID] ELSE @SubLeftID END
- ,@SubRightID = CASE WHEN [IsRight] = 1 THEN [ID] ELSE @SubRightID END
- FROM Associate_Income
- WHERE ParentID = @ParentID
- IF @SubLeftID IS NOT NULL AND @SubRightID IS NOT NULL AND EXISTS(SELECT 1 FROM Associate_Income WHERE [IsLeft] = 1 AND ParentID = @SubLeftID)
- BEGIN
- SET @ParentSUM = 1
- ;WITH Associate_Income_CTE AS
- (
- SELECT [ID], [ParentID], [IsLeft], [IsRight], 0 AS [Level]
- FROM Associate_Income
- WHERE [ParentID] = @ParentID
- UNION ALL
- SELECT RecursiveMember.[ID], RecursiveMember.[ParentID], RecursiveMember.[IsLeft], RecursiveMember.[IsRight], Level + 1
- FROM Associate_Income RecursiveMember
- INNER JOIN Associate_Income_CTE AnchorMember
- ON RecursiveMember.[ParentID] = AnchorMember.[ID]
- )
- SELECT @ParentSUM = @ParentSUM + COUNT([ParentID])
- FROM
- (
- SELECT [ParentID]
- ,'IsLeft' AS [Direction]
- ,1 AS [Value]
- FROM Associate_Income
- WHERE [IsLeft] = 1
- AND [ID] <> @ParentID --AND [ID] NOT IN (@SubLeftID, @ParentID)
- AND [ParentID] NOT IN (@ParentID, @SubLeftID)
- UNION ALL
- SELECT [ParentID]
- ,'IsRight' AS [Direction]
- ,1 AS [Value]
- FROM Associate_Income
- WHERE [IsRight] = 1
- AND [ParentID] <> @ParentID
- ) AS Associate_Income
- PIVOT
- (
- MAX([Value]) FOR [Direction] IN ([IsLeft], [IsRight])
- ) PVT
- WHERE [IsLeft] IS NOT NULL AND [IsRight] IS NOT NULL
- END
- SELECT @ParentSUM
please any one suggest us how can count day to day total number of pairs under particular node maximum up to 5 pair capping daily