Сравните поля даты в SQL-сервере - PullRequest
3 голосов
/ 07 апреля 2010

У меня есть плоский файл, в котором я удалил данные с помощью служб SSIS, выходные данные выглядят так:

MEDICAL    ADMIT     PATIENT     PATIENT         DATE OF    DX 
REC NO     DATE      NUMBER        NAME        DISCHARGE   Code     DRG #

123613    02/16/09  12413209  MORIBALDI ,GEMMA  02/19/09   428.20     988    
130897    01/23/09  12407193  TINLEY ,PATRICIA  01/23/09   535.10     392    
139367    02/27/09  36262509  THARPE ,GLORIA    03/05/09   562.10     392 

141954    02/25/09  72779499  SHUMATE ,VALERIA  02/25/09   112.84     370   
141954    03/07/09  36271732  SHUMATE ,VALERIA  03/10/09   493.92     203  

145299    01/21/09  12406294  BAUGH ,MARIA      01/21/09   366.17     117  

и отчет (окончательные результаты), прикрепленный на снимке экрана из окончательного отчета Excel.

, поэтому происходит, если одно и то же имя или номер счета совпадают, это означает, что пациент снова вошел в больницу и должен быть включен в отчет.! [alt text] [1]

что мне нужно сделать, это ...

Устранить все строки, которые НЕ являются дубликатами (не все в этом файле были допущены снова) и сравнитьдаты, чтобы получить ReAdmitdate и ReDischargedate

Я свалил данные в таблицу SQL и пытаюсь сравнить даты, чтобы выяснить "ReAdmitdate" и "ReDischargedate"

любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 07 апреля 2010

Существует ли уникальный идентификатор для пациентов?Я предполагаю, что номер_патента является уникальным идентификатором для каждого пациента, а значение параметра medical_rec_no является инкрементным.

Этот запрос работает путем объединения записей о пациентах с записями того же пациента, у которых есть более поздняя дата приема.

SELECT p1.patient_number, p1.admit_date,
  p2.admit_date as readmit_date, p2.discharge_date AS redischarge_date
FROM patient p1
  INNER JOIN patient p2
    ON p1.patient_number = p2.patient_number AND
      p2.medical_rec_no <> p1.medical_rec_no
  LEFT OUTER JOIN patient p3
    ON p3.patient_number = p1.patient_number AND
      p3.medical_rec_no <> p1.medical_rec_no AND
      p3.admit_date < p2.admit_date
WHERE p3.patient_number IS NULL
ORDER BY p1.patient_number, p1.admit_date, p1.medical_rec_no
0 голосов
/ 08 апреля 2010

Раньше я работал в больнице в группе хранилищ данных (собирая кубы, используемые всей организацией), и у нас были номера посещений, и оттуда мы могли определить, был ли это набор назначений (или повторный прием в качестве Вы ссылаетесь на это). Есть ли у вас номера встреч и номера посещений, может быть полезно добавить их в таблицу SQL.

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