Ошибка при заполнении временной таблицы результатами запроса
Почему этот запрос выполняется один, но я получаю ошибку, когда пытаюсь поместить результаты во временную таблицу
Работает
SELECT DISTINCT
ENCOUNTER_ID = OP.PAT_ENC_CSN_ID
,NOTE_TYPE = OP.PROC_CODE
,CREATE_TIME = OP.ORDER_INST
,OP.ORDER_PROC_ID
,EAP.PROC_NAME
-----INTO #ECHO_ORDERS
FROM PAT_ENC E
INNER JOIN #SER SER ON SER.PROV_ID = E.VISIT_PROV_ID
INNER JOIN ORDER_PROC OP ON OP.PAT_ENC_CSN_ID = E.PAT_ENC_CSN_ID
INNER JOIN CLARITY_EAP EAP ON EAP.PROC_ID = OP.PROC_ID
INNER JOIN EDP_PROC_CAT_INFO EDP ON EDP.PROC_CAT_ID = EAP.PROC_CAT_ID
WHERE (EAP.PROC_NAME LIKE '%ECHO%'
OR EDP.PROC_CAT_NAME LIKE 'ECH%')
AND EDP.PROC_CAT_NAME NOT IN ( 'CHG LABORATORY', 'LAB BLOOD ORDERABLES', 'PR GASTROENTEROLOGY', 'PR INJECTABLE MEDS', 'URINE ORDERABLES')
Не работает
if object_id('tempdb..#ECHO_ORDERS') is not null begin drop table #ECHO_ORDERS
SELECT DISTINCT
ENCOUNTER_ID = OP.PAT_ENC_CSN_ID
,NOTE_TYPE = OP.PROC_CODE
,CREATE_TIME = OP.ORDER_INST
,OP.ORDER_PROC_ID
,EAP.PROC_NAME
INTO #ECHO_ORDERS
FROM PAT_ENC E
INNER JOIN #SER SER ON SER.PROV_ID = E.VISIT_PROV_ID
INNER JOIN ORDER_PROC OP ON OP.PAT_ENC_CSN_ID = E.PAT_ENC_CSN_ID
INNER JOIN CLARITY_EAP EAP ON EAP.PROC_ID = OP.PROC_ID
INNER JOIN EDP_PROC_CAT_INFO EDP ON EDP.PROC_CAT_ID = EAP.PROC_CAT_ID
WHERE (EAP.PROC_NAME LIKE '%ECHO%'
OR EDP.PROC_CAT_NAME LIKE 'ECH%')
AND EDP.PROC_CAT_NAME NOT IN ( 'CHG LABORATORY', 'LAB BLOOD ORDERABLES', 'PR GASTROENTEROLOGY', 'PR INJECTABLE MEDS', 'URINE ORDERABLES')
Я получаю это сообщение об ошибке о последней строке кода, когда я запускаю код, который не работает
Msg 102, Level 15, State 1, Line 222
Incorrect syntax near ')'.
1 ответ
Решение
Если вы правильно отформатируете свой код, понятно, почему он не работает.
if object_id('tempdb..#ECHO_ORDERS') is not null
begin
drop table #ECHO_ORDERS
SELECT DISTINCT
ENCOUNTER_ID = OP.PAT_ENC_CSN_ID
,NOTE_TYPE = OP.PROC_CODE
,CREATE_TIME = OP.ORDER_INST
,OP.ORDER_PROC_ID
,EAP.PROC_NAME
INTO #ECHO_ORDERS
FROM PAT_ENC E
INNER JOIN #SER SER ON SER.PROV_ID = E.VISIT_PROV_ID
INNER JOIN ORDER_PROC OP ON OP.PAT_ENC_CSN_ID = E.PAT_ENC_CSN_ID
INNER JOIN CLARITY_EAP EAP ON EAP.PROC_ID = OP.PROC_ID
INNER JOIN EDP_PROC_CAT_INFO EDP ON EDP.PROC_CAT_ID = EAP.PROC_CAT_ID
WHERE (EAP.PROC_NAME LIKE '%ECHO%' OR EDP.PROC_CAT_NAME LIKE 'ECH%')
AND EDP.PROC_CAT_NAME NOT IN (
'CHG LABORATORY', 'LAB BLOOD ORDERABLES', 'PR GASTROENTEROLOGY', 'PR INJECTABLE MEDS', 'URINE ORDERABLES'
)
У тебя есть BEGIN
и нет END
,