У меня есть запрос, который устранит дубликаты и отобразит только уникальные записи.Удалите повторяющиеся строки после объединения нескольких таблиц
SELECT DISTINCT TBLPATIENT.MRN
FROM tblpatient
Выход:
MRN
------
15257
15283
15285
15290
15291
15302
Однако, у меня есть дополнительные столбцы, которые мне нужны, чтобы показать, но я хочу только уникальные MRN
с.
SELECT
v.PatientID,
p.firstname,
p.lastname,
p.dob,
p.mrn,
s.VisitID,
v.AdmitedDate
FROM
tblPatient p
JOIN
tblPatientVisit v ON p.id = v.PatientID
JOIN
tblPatientSmokingScreenOrder s ON v.id = s.VisitID
JOIN
DESCRIPTOR t ON s.SMOKING_STATUS_DSC_ID = DESCRIPTOR_ID
WHERE
isdate(p.DOB) = 1
AND CONVERT(date,p.DOB) <'12/10/2000'
AND v.PatientType = 'I' and
isdate(v.AdmitedDate) = 1
AND CONVERT(date,v.AdmitedDate) > '06/16/2013 16:16'
Выход:
PatientID firstname lastname dob mrn VisitID AdmitedDate
---------------------------------------------------------------------------
1 JAMES TEST 6/11/1942 100241 1 54:00.0
10 TEST3 DEMOGRAPHIC 4/7/1980 100251 13 39:00.0
5 TEST2 DEMOGRAPHIC 8/31/1938 3 12 36:00.0
21 ZACHARY EFRON 11/2/1976 100267 24 11:00.0
16 PATIENT DEMO 2/28/1943 100260 26 56:00.0
17 ALICE WONDERLAND 9/20/1942 100261 20 14:00.0
23 TEST5 BROWN 5/6/1965 15285 27 40:00.0
23 Test5 BROWN 5/6/1965 15285 27 40:00.0
Как взять сценарий выше и реорганизовать его, чтобы показывать только Test5 Brown
один раз?
Можете ли вы предоставить все строки из каждой таблицы, относящиеся к пациенту № 23, и посетить 27? Какая таблица состоит из двух строк? Можно было бы подумать, что «tblpatient» имеет только один ряд на пациента. 'tblpatientvisit', вероятно, имеет 2+ строки для пациентов с 2+ посещениями (однако неясно, имеет ли он 2+ строки для одного посещения, из-за других описательных столбцов, может быть вашей проблемой), и неясно также, может ли быть отношения 1: M между 'tblpatientvisit' и' tblpatientsmokingscreenorder'. Использование 'distinct' просто было бы попыткой перевязать запрос. Нам нужно знать, где 1: M rel. is –
Не заметил, что имена указаны по-разному для пациента № 23. Возможно, «tblpatient» имеет эффективные датированные строки, отражающие изменения имени пациента и другой информации с течением времени. Какие поля находятся на этом столе? Возможно, вам нужен коррелированный подзапрос, чтобы показать максимальную эффективную датированную запись с момента посещения. –
Возможный дубликат [Как запросить таблицу SQL и удалить повторяющиеся строки из набора результатов] (http://stackoverflow.com/questions/16327383/how-to-query-sql-table-and-remove-duplicate-rows- from-a-result-set) –