November 23, 2016 at 6:55 am
I need to find patients who do not have a Primary Care Provider. The test table represents data that identifies patient visits, VisitID, and different provider types. In other words find the VisitID where there is no 'Y' in the "IsPrimaryCareProvider" field.
Using this,
where VisitID not in(selectdistinct VisitID
from livefdb.dbo.RegAcct_Providers
where IsPrimaryCareProvider='Y')
in the where clause causing performance issues. There is one VisitID,F0-B20161112062935910, in #Test that does not have a 'Y' in the "IsPrimaryCareProvider" field.
Any thoughts?
create table #Test
(
VisitID varchar(30),
IsPrimaryCareProvider char(1),
IsAdmittingProvider char(1),
IsAttendingProvider char(1),
IsEmergencyProvider char(1)
)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,'Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,'Y',NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517','Y',NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161025185450517',NULL,NULL,NULL,'Y')
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,'Y','Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115150343245',NULL,'Y','Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115150343245','Y',NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115150343245',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,'Y',NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,'Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856','Y',NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161115163039856',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109','Y',NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,'Y')
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161111162048109',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,'Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161112062935910',NULL,NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161118113444037',NULL,'Y',NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161118113444037',NULL,NULL,'Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161118113444037',NULL,NULL,NULL,'Y')
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161118113444037','Y',NULL,NULL,NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161118121157187',NULL,'Y','Y',NULL)
insert into #Test(VisitID, IsPrimaryCareProvider, IsAdmittingProvider, IsAttendingProvider, IsEmergencyProvider) values('F0-B20161118121157187','Y',NULL,NULL,NULL)
November 23, 2016 at 7:18 am
Does this do what you want?
SELECT
VisitID
FROM #Test t
WHERE NOT EXISTS(
SELECT 1 FROM #Test t1
WHERE t1.IsPrimaryCareProvider ='Y'
AND t1.VisitID = t.VisitID
)
GROUP BY
VisitID
How to post a question to get the most help http://www.sqlservercentral.com/articles/Best+Practices/61537
November 23, 2016 at 7:42 am
Wonderful. Thanx.
November 23, 2016 at 8:34 am
This should be more efficient:
SELECT VisitID
FROM #Test
GROUP BY VisitID
HAVING MAX(CASE WHEN IsPrimaryCareProvider ='Y' THEN 1 ELSE 0 END) = 0
SQL DBA,SQL Server MVP(07, 08, 09) "Money can't buy you happiness." Maybe so, but it can make your unhappiness a LOT more comfortable!
November 23, 2016 at 8:51 am
Thanx.
Viewing 5 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic. Login to reply