У меня есть данные из таблицы, которая выглядит следующим образом:
encounter | prov_id_name
---------------------------
12345678 | 123456ProviderA
Затем я хочу сопоставить их по идентификатору провайдера из таблицы измерений вместо того, чтобы извлекать подстроку, если есть совпадение втаблица затемнения.
Таблица размеров выглядит следующим образом:
orgz_cd | src_pract_no | pract_rpt_name
----------------------------------------
0002 | 123456 | PROVIDER A X
1234 | 123456 | Provider A
4321 | 123456 | Provider A
Я использовал следующий обработанный SQL, чтобы получить то, что мне нужно:
LEFT OUTER JOIN (
SELECT ZZZ.src_pract_no
, MAX(ZZZ.pract_rpt_name) PRACT_RPT_NAME
FROM smsdss.pract_dim_v AS ZZZ
GROUP BY src_pract_no
) AS MD
ON LEFT(HL7.PRIM_CARE_PROV_NAME_ID, 6) = MD.SRC_PRACT_NO
Мой вопросВот почему это не сработало, и это то, что я изначально пробовал, что не дало бы никаких результатов:
LEFT OUTER JOIN (
SELECT TOP 1 ZZZ.src_pract_no
, MAX(ZZZ.pract_rpt_name) PRACT_RPT_NAME
FROM smsdss.pract_dim_v AS ZZZ
) AS MD
ON LEFT(HL7.PRIM_CARE_PROV_NAME_ID, 6) = MD.SRC_PRACT_NO
Я также пытался:
LEFT OUTER JOIN smsdss.pract_dim_v AS MD
ON LEFT(HL7.PRIM_CARE_PROV_NAME_ID, 6) = (
SELECT TOP 1 SRC_PRACT_NO
, PRACT_RPT_NAME
FROM SMSDSS.PRACT_DIM_V
)
Я думаю, что никаких результатов не былоназад или, скорее, это не сработало, как я ожидал, потому что подзапрос оценивается только один раз для первого результата, который возвращается, не найдя совпадения, и затем все, но не уверен.