troubleshooting Question

Problem deleting duplicates using a CTE when there are table joins

Avatar of Martin Griffiths
Martin Griffiths asked on
Microsoft SQL Server 2005
10 Comments1 Solution1500 ViewsLast Modified:
I've used CTEs to remove duplicates successfully before, but this time round I wanted to delete them from one table having joined to other tables and it comes back with the error:

View or function 'dupnotesCTE' is not updatable because the modification affects multiple base tables. See the attached code for my sql statement.

Not sure where I've gone wrong here...can someone help please?
;WITH dupnotesCTE([FileNo]
      ,[CommentDate]
      ,[CommentTime]
      ,[CommentUser]
      ,[Cat]
      ,[Pri]
      ,[Line]
      ,[Note], Ranking)
AS
(
SELECT	p.[FileNo]
      ,p.[CommentDate]
      ,p.[CommentTime]
      ,p.[CommentUser]
      ,p.[Cat]
      ,p.[Pri]
      ,p.[Line]
      ,p.[Note]
	,Ranking = row_number() OVER(PARTITION BY p.[FileNo]
      ,p.[CommentDate]
      ,p.[CommentTime]
      ,p.[CommentUser]
      ,p.[Cat]
      ,p.[Pri]
      ,p.[Line]
      ,p.[Note] ORDER BY p.[FileNo]
      ,p.[CommentDate]
      ,p.[CommentTime]
      ,p.[CommentUser]
      ,p.[Cat]
      ,p.[Pri]
      ,p.[Line]
      ,p.[Note])
FROM filenotes p
join detailtable d on ltrim(rtrim(p.FileNo)) = ltrim(rtrim(d.FileNo))
join country c on d.country_no = c.country_no
where c.continent in ('Asia','Europe')
)

delete from dupnotesCTE
where ranking > 1
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 10 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 10 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros