Как мне объединить 2 ряда в один? - PullRequest
0 голосов
/ 04 июля 2018

Возможно ли объединить эти две записи вместе? В приведенном ниже примере в столбце WARD_NUMBER указан идентификатор отделения, в котором будет находиться пациент.

Временная шкала: пациент пришел в палату в 10:10 и был выписан в 22:48 того же дня. То, что мы видим в системе, - это перенос кровати в палате, которая вызывает эту проблему, поскольку это НЕ переводит палату

Интересно, можно ли показывать только одну строку данных (всегда сохраняя 1-й WARD_STAY_IDENTIFIER и START_DATE_TIME_WARD_STAY, но объединяя, чтобы включить 2-й END_DATE_TIME_WARD_STAY

Например

('600054394373', '2018-01-05 10:10:00.000', '2018-01-05 22:48:49.000', '600007275916', '3400003723'),

ТИА

DECLARE @CDI_APC_WARD_STAY TABLE (HOSPITAL_PROVIDER_SPELL_NUMBER  varchar(50),
                          START_DATE_TIME_WARD_STAY datetime, 
                          END_DATE_TIME_WARD_STAY datetime,
                          WARD_STAY_IDENTIFIER varchar(50),
                          WARD_NUMBER varchar(50)
                         )

INSERT INTO @CDI_APC_WARD_STAY
    VALUES 
    ('600054394373', '2018-01-05 10:10:00.000', '2018-01-05 11:50:00.000', '600007275916', '3400003723'),
    ('600054394373', '2018-01-05 11:50:00.000', '2018-01-05 11:54:00.000', '600007276481', '3400003723'),
    ('600054394373', '2018-01-05 11:54:00.000', '2018-01-05 20:22:00.000', '600007276510', '3400003723'),
    ('600054394373', '2018-01-05 20:22:00.000', '2018-01-05 20:23:00.000', '600007279380', '3400003723'),
    ('600054394373', '2018-01-05 20:23:00.000', '2018-01-05 22:48:49.000', '600007279385', '3400003723'),
    ('600054394373', '2018-01-05 22:48:49.000', '2018-01-06 20:24:04.000', '600007279710', '3400003688')

1 Ответ

0 голосов
/ 04 июля 2018
SELECT 
    c1.HOSPITAL_PROVIDER_SPELL_NUMBER,
    FirstDate = MIN(c1.START_DATE_TIME_WARD_STAY),
    LastDate = MAX(c2.END_DATE_TIME_WARD_STAY),
    WardStayID = MIN(c1.WARD_STAY_IDENTIFIER),
    c1.WARD_NUMBER
FROM
    @CDI_APC_WARD_STAY c1
    JOIN
    @CDI_APC_WARD_STAY c2 ON c2.HOSPITAL_PROVIDER_SPELL_NUMBER = c1.HOSPITAL_PROVIDER_SPELL_NUMBER
      AND c2.START_DATE_TIME_WARD_STAY = c1.END_DATE_TIME_WARD_STAY
      AND c2.WARD_NUMBER = c1.WARD_NUMBER
GROUP BY
    c1.HOSPITAL_PROVIDER_SPELL_NUMBER,
    c1.WARD_NUMBER;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...