Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IF NOT OBJECT_ID('[dbo].[tsp_FindAccountDuplicateByInfTIN]') IS NULL
- BEGIN
- DROP PROCEDURE [dbo].[tsp_FindAccountDuplicateByInfTIN];
- END;
- GO
- CREATE PROCEDURE [dbo].[tsp_FindAccountDuplicateByInfTIN] (
- @parsedConfig CreatingObjectInfo READONLY,
- @sysAdminUnit UNIQUEIDENTIFIER,
- @ruleId UNIQUEIDENTIFIER
- )
- AS
- BEGIN
- DECLARE @parsedConfigRowsCount INT = (SELECT COUNT(*) FROM @parsedConfig);
- CREATE TABLE #searchAccount (
- [InfTIN] INT,
- [SortDate] DATETIME
- );
- IF @parsedConfigRowsCount = 0
- BEGIN
- INSERT INTO #searchAccount ([InfTIN], [SortDate])
- SELECT
- [InfTIN],
- MAX([ModifiedOn])
- FROM [Account]
- GROUP BY [InfTIN]
- HAVING COUNT(*) > 1;
- END;
- INSERT INTO [AccountDuplicateSearchResult] ([AccountId], [GroupId], [RuleId], [SysAdminUnitId])
- SELECT
- [vr].[Id],
- DENSE_RANK() OVER (ORDER BY [vr].[SortDate] DESC, [vr].[InfTIN]),
- @ruleId RuleId,
- @sysAdminUnit
- FROM (
- SELECT
- [v].[Id],
- [v].[InfTIN],
- [r].[SortDate]
- FROM [Account] [v], #searchAccount r
- WHERE [v].[InfTIN] = [r].[InfTIN]
- GROUP BY [v].[InfTIN], [r].[SortDate], [v].[Id]
- ) [vr];
- END;
- GO
Add Comment
Please, Sign In to add comment