I'm trying to build an indexed view but returning a duplicate key error, any advice on what to do? I can't use the original table's primary key as the view is being grouped.
Many thanks,
Jonathan
USE [IHG_MST]
GO
SET NUMERIC_ROUNDABORT OFF
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT,
QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE VIEW [dbo].[bvw_Grouped_Delphi_optimised]
WITH SCHEMABINDING
AS
SELECT
count_big(*) as tmp,
SUM(isnull(id, 0)) as ID,
Holidex_Code, Export_Date, Account, PostAs,
StatusText, BookedByID, BookedByFullName,
EventStartDate, PropertyPID, PropertyName,
MtgClassName, BookingMarketSegment,
SUM(isnull(TotalFunctionRevenue, 0)) AS TotalFunctionRevenue,
SUM(isnull(FoodRevenue, 0)) AS FoodRevenue,
SUM(isnull(BevRevenue, 0)) AS BevRevenue,
SUM(isnull(RentalRevenue, 0)) AS RentalRevenue,
SUM(isnull(ResourceRevenue, 0)) AS ResourceRevenue,
SUM(isnull(AgreedRooms, 0)) AS AgreedRooms,
SUM(isnull(TotalRevenue, 0)) AS TotalRevenue,
SUM(isnull(CurrentRooms, 0)) AS CurrentRooms,
SUM(isnull(ExpectedAttendance,0)) AS ExpectedAttendance,
SUM(isnull(TotalGuestroomRevenue,0)) AS TotalGuestroomRevenue,
CreatedDate, LeadSource, LostReason, EventType,
FunctionRoomName, ReportGrouping, BookingID, ExtractDate,
BookingAbbrev, Uploaded_By, Uploaded_On
FROM
dbo.MST_Delphi_Bookings
WHERE
(Holidex_Code IS NOT NULL)
AND (ReportGrouping <> 'Booking')
AND (LostReason <> 'Operator Entry Error')
AND (LostReason <> 'test call')
GROUP BY
Holidex_Code, Export_Date, Account, PostAs, StatusText, BookedByID,
BookedByFullName, EventStartDate, PropertyPID, PropertyName, MtgClassName,
BookingMarketSegment, CreatedDate, LeadSource, LostReason, EventType,
FunctionRoomName, ReportGrouping, BookingID, ExtractDate, BookingAbbrev,
Uploaded_By, Uploaded_On
GO
CREATE UNIQUE CLUSTERED INDEX IX_Delphi_Holidex_Code
ON [dbo].[bvw_Grouped_Delphi_optimised](Holidex_Code, Export_Date)
GO
Error:
Msg 1505, Level 16, State 1, Line 1
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.bvw_Grouped_Delphi_optimised' and the index name 'IX_Delphi_Holidex_Code'. The duplicate key value is (ASDKE, 2014-03-24).
@usr:
CREATE UNIQUE CLUSTERED INDEX IX_Delphi_Holidex_Code
ON [dbo].[bvw_Grouped_Delphi_optimised](Holidex_Code, Export_Date, Account, PostAs,
StatusText, BookedByID, BookedByFullName,
EventStartDate, PropertyPID, PropertyName,
MtgClassName, BookingMarketSegment,
SUM(isnull(TotalFunctionRevenue, 0)) AS TotalFunctionRevenue,
SUM(isnull(FoodRevenue, 0)) AS FoodRevenue,
SUM(isnull(BevRevenue, 0)) AS BevRevenue,
SUM(isnull(RentalRevenue, 0)) AS RentalRevenue,
SUM(isnull(ResourceRevenue, 0)) AS ResourceRevenue,
SUM(isnull(AgreedRooms, 0)) AS AgreedRooms,
SUM(isnull(TotalRevenue, 0)) AS TotalRevenue,
SUM(isnull(CurrentRooms, 0)) AS CurrentRooms,
SUM(isnull(ExpectedAttendance,0)) AS ExpectedAttendance,
SUM(isnull(TotalGuestroomRevenue,0)) AS TotalGuestroomRevenue,
CreatedDate, LeadSource, LostReason, EventType,
FunctionRoomName, ReportGrouping, BookingID, ExtractDate,
BookingAbbrev, Uploaded_By, Uploaded_On)
GO