рассчитывать один случай на человека в день - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть запрос, который определяет, какую страховку использовал человек, и дату обслуживания.Если человек использовал медицинскую страховку И стоматологическую страховку на одну и ту же дату, я хочу рассчитывать только на медицинскую страховку.

With medical as
   ( select p.person_nbr as PNum
    , pe.date
    , pm.payer
    , 'Medical' as PayerGroup
    from person p
JOIN patient_encounter pe on p.person_id = pe.person_id
JOIN payer_mstr pm on pe.payer_id = pe.payer_id
where pm.payer like '%Medical%'

--insert medical into and create temp table 
SELECT
PNum
,Date
,Payer
,PayerGroup
INTO #WTEMP
FROM Medical; 

With dental as
   ( select p.person_nbr as PNum
    , pe.date
    , pm.payer
    ,'Dental' as PayerGroup
    from person p
JOIN patient_encounter pe on p.person_id = pe.person_id
JOIN payer_mstr pm on pe.payer_id = pe.payer_id
where pm.payer like '%Dental%'

--insert dental into temp table 
SELECT
PNum
,Date
,Payer
,PayerGroup
INTO #WTEMP
FROM Dental; 

--Pull from temp
select Pnum
,Date
,Payer
,PayerGroup
FROM #WTEMP
DROP TABLE #WTEMP;

Я просто хочу исключить стоматологические записи, если в тот день у этого человека был медицинский визит

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Вы можете использовать функции управления окнами, такие как Row_Number (), Разделить данные по PNum и Дате и упорядочить данные по Плательщику.

Вывод будет выглядеть так

abc, '2019-03-01', 'Medical', 1
abc, '2019-03-01', 'Dental', 2

Фильтр1

Примечание. Я не уверен, будет ли работать ваш SELECT INTO #WTEMP как для медицинского, так и для стоматологического ... поскольку таблица уже создана.

0 голосов
/ 03 апреля 2019

Я бы использовал предложение GROUP BY.

Предполагая, что Payer - это "человек", а Date - это "дата обслуживания", вы можете попробовать:

SELECT Pnum, Дата, Плательщик, PayerGroup ОТ #WTEMP GROUP BY Плательщик, Дата DROP TABLE #WTEMP;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...