Я работаю с данными претензий и переоцениваю претензии в соответствии с другим графиком оплаты.Итак, у меня есть две таблицы.Претензии и график.В этом случае переоценка сводится к CPT_Code и Modifier.Поэтому я условно присоединяюсь к ним на
claims.CPT = fschedule.CPT
AND
claims.mod = fschedule.mod
Вот как выглядит fschedule:
CPT || Modifier || Price
77325 || 26 || 73.25
77325 || TC || 52.77
77325 || XX || 101.21
77333 || XX || 12.31
Однако моя проблема в том, что таблица утверждений может иметь:
CPT || Modifier
77333 || TC
Но в расписании может быть 77333, но не с TC или 26 только XX.Поэтому я хочу, чтобы таблицы объединялись на обоих
claims.CPT = fschedule.CPT
AND
claims.mod = f.schedule.mod
, но если в fschedule нет совпадений, я хочу, чтобы это совпадало, когда модификатор fschedule XX
Я пытаюсь условно присоединиться кдве таблицы с использованием операторов case.
FROM
claims as c
LEFT JOIN
fschedule as f
ON
CASE WHEN c.mod IN ('TC','26') THEN
CASE WHEN f.mod IN ('TC','26') AND c.cpt= f.cpt AND c.mod = f.mod THEN c.cpt = f.cpt AND c.mod = f.mod
WHEN f.mod NOT IN ('TC','26') AND c.cpt= f.cpt AND c.mod <> f.mod THEN c.cpt = f.cpt AND c.mod <> f.mod
END
WHEN c.mod NOT IN ('TC','26') AND f.mod NOT IN ('TC','26') THEN c.cpt = f.cpt AND c.mod = f.mod
END;
Мне нужно использовать условное левое соединение, например:
Claims as c
LEFT JOIN
fschedule as f
ON
c.CPT = f.CPT
AND
c.mod = f.mod
Однако, если в таблице утверждений есть:
CPT || Modifier || Paid
77333 || TC || 7.88
Но в fschedule есть только:
CPT || Modifier || Price
77333 || XX || 12.31
Мне нужна таблица заявок, чтобы вывести цену 12,31, найденную в таблице fschedule.Модификатор XX означает, что модификатор не существует.
Таблица заявок перед ее присоединением к таблице fschedule содержит 22 124 строки данных.После объединения их с моим текущим кодом таблица выводит 25 283 строки данных.Мне нужен выход, чтобы остаться 22,124.
Короче говоря, мне нужно объединить две таблицы на обеих:
c.cpt = f.cpt
AND
c.mod = f.mod
, но если таблица утверждений имеет код и модификатор CPT, но fschedule имеет только код CPT инет совпадения модификатора, тогда мне нужно заставить fschedule вывести цену с модификатором XX, так как он не имеет модификатора TC или 26.
Спасибо за помощь.
************* Обновленный выпуск **************
Таблица претензий:
CPT || Mod || Paid
77067 || TC || 83.10
Таблица сборов
CPT || Mod || Price
77067 || 26 || 76.23
77067 || XX || 103.01
Поэтому, хотя в таблице утверждений есть модификатор TC, но в таблице сборов есть код, но не модификатор, я все еще хочуэто подключить к таблице требований, используя таблицу сборов, когда модификатор = XX.Поэтому я бы хотел, чтобы конечный результат выглядел следующим образом:
CPT || Mod || Paid || Fees_Price || Fees_Mod
77067 || TC || 83.10 || 103.01 || XX
На данный момент это вывод:
CPT || Mod || Paid || Fees_Price || Fees_Mod
77067 || TC || 83.10 || ||
Спасибо