Solved

Query to delete patients last visit.

Posted on 2013-06-09
3
218 Views
Last Modified: 2013-07-01
I have a table that contains a list of patient id's and visit years .  For example:

PatientID  VisitYear
A1              1
A1              2
A1              2
A1              3
A1              3
A2              1
A2              2
A2              2
A3              1

Open in new window


I need Query that will delete ALL the entries for the patients last year.  So the above table would look like

PatientID  VisitYear
A1              1
A1              2
A1              2
A2              1

Open in new window

0
Comment
Question by:soozh
3 Comments
 
LVL 22

Expert Comment

by:Thomasian
ID: 39233145
DECLARE @t TABLE (PatientID varchar(10), VisitYear int)

INSERT @t
SELECT 'A1', 1
UNION ALL SELECT 'A1', 2
UNION ALL SELECT 'A1', 2
UNION ALL SELECT 'A1', 3
UNION ALL SELECT 'A1', 3
UNION ALL SELECT 'A2', 1
UNION ALL SELECT 'A2', 2
UNION ALL SELECT 'A2', 2
UNION ALL SELECT 'A3', 1

DELETE T
FROM
	(SELECT  rn=RANK() OVER (PARTITION BY PatientID ORDER BY VisitYear DESC)
	 FROM @t
	) T
WHERE rn=1

SELECT * FROM @t

Open in new window

0
 
LVL 40

Assisted Solution

by:Sharath
Sharath earned 250 total points
ID: 39233880
Another method.
delete t1
  from YourTable t1
  join (select PatientID,max(VisitYear) VisitYear from YourTable group by PatientID) t2
    on t1.PatientID = t1.PatientID and t1.VisitYear = t2.VisitYear

Open in new window

0
 
LVL 32

Accepted Solution

by:
awking00 earned 250 total points
ID: 39237783
delete from yourtable as a
where exists
(select b.patientid, max(b.visityear)
 from yourtable as b
 group by b.patientid
 having b.patientid = a.patientid
    and max(b.visityear) = a.visityear);
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Hi all, It is important and often overlooked to understand “Database properties”. Often we see questions about "log files" or "where is the database" and one of the easiest ways to get general information about your database is to use “Database p…
Confronted with some SQL you don't know can be a daunting task. It can be even more daunting if that SQL carries some of the old secret codes used in the Ye Olde query syntax, such as: (+)     as used in Oracle;     *=     =*    as used in Sybase …
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This is a video describing the growing solar energy use in Utah. This is a topic that greatly interests me and so I decided to produce a video about it.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now