Удаление записей с одинаковым идентификатором в выбранном наборе данных (ADS) - PullRequest
0 голосов
/ 21 сентября 2010

Я пытаюсь запросить базу данных управления клинической практикой, чтобы вернуть набор данных, который соответствует любому в списке значений (коды icd-9) для четырех разных полей, но затем вернуть только номер идентификатора пациента или толькопервая запись для этого пациента, имеющая один из кодов icd-9.Затем я планирую подготовить некоторый подотчет, чтобы предоставить мне остальные данные, которые мне нужны для пациента, включая коды icd-9 для последнего случая / посещения.

Программное обеспечение генерирует что-то вроде следующего:

SELECT DISTINCT 
                MWTRN."Chart Number" AS Chart_Number, 
                MWTRN."Diagnosis Code 1" AS Diagnosis_Code_1, 
                MWTRN."Diagnosis Code 2" AS Diagnosis_Code_2, 
                MWTRN."Diagnosis Code 3" AS Diagnosis_Code_3, 
                MWTRN."Diagnosis Code 4" AS Diagnosis_Code_4, 
                MWTRN."Date From" AS Date_From, 
                MWTRN."Date To" AS Date_To, 
                MWPAT."First Name" AS First_Name, 
                MWPAT."Last Name" AS Last_Name
FROM MWTRN MWTRN, MWPAT MWPAT
WHERE 
      (MWPAT."Chart Number" = MWTRN."Chart Number")
GROUP BY MWTRN."Chart Number", 
         MWTRN."Diagnosis Code 1", 
         MWTRN."Diagnosis Code 2", 
         MWTRN."Diagnosis Code 3", 
         MWTRN."Diagnosis Code 4", 
         MWTRN."Date From", MWTRN."Date To", 
         MWPAT."Last Name", MWPAT."First Name"

После генерации набора данных, как я могу вернуться назад и сопоставить результаты?

Я прочитал пару сайтов с учебными пособиями по поддержке SQL, чтобы прочитать сгенерированный SQL, и подумалмне нужен был DISTINCT, но он только проверяет, отличается ли вся запись, а не только ID.

- Layman использует Advantage Database Server и программное обеспечение для отчетов, которое может быть каким-то образом связано с Crystal Reports.

1 Ответ

3 голосов
/ 21 сентября 2010

Для тестирования вам понадобится Advantage Data Architect, который можно загрузить с Advantage DevZone.http://devzone.advantagedatabase.com Кроме того, вам понадобится полный файл справки, который включает в себя копию изумительного «сервера базы данных Advantage, Руководство для разработчика» Кэри Дженсена, доступного там же, что поможет вам быстрее освоиться.SQL в Advantage и SQL в целом.У вас есть несколько вариантов в зависимости от того, что именно вы пытаетесь достичь.Вы можете создать сценарий SQL и перенести ваш оператор во временную таблицу, как в

Select into #MyTemp --all the rest of the complex SQL command--

. Затем вы можете делать с этим файлом все, что хотите, чтобы сократить его.Однако, если вы просто хотите получить список пациентов с определенным кодом диагностики, вы можете сделать что-то вроде

Select pat.id, pat.name, pat.address from pat where pat.id in (Select id from tran where diag1 in ('123.3','123.4') UNION Select id from tran where diag2 in ('123.3','123.4') UNION
Select id from tran where diag3 in ('123.3','123.4') UNION Select id from tran where diag4 in ('123.3','123.4');

И если вам нужно сделать это в Crystal, вы можете создать этот набор с помощьюРаздел AddCommand ... просто убедитесь, что вы используете Advantage Crystal Driver, правильно настроены и доступны из ... вы уже догадались ... Advantage Devzone

Надеюсь, это поможет.

...