2015-12-28 7 views
0

Я получаю исключение SQLЕсли существует еще, если условие в SQL Server

Неправильный синтаксис около ')'

Вот хранимая процедура:

if exists(select o.icd10code 
      from ICD10Master.dbo.icd10obginfectiousCrosswalk i 
      inner join Icd10TempDisease t on i.icdcode = t.Code1 
      where o.trimstatus = @condition 
      and t.[Status] in (0,1)) 
begin 
    select 
     @obgCode = o.icd10code, 
     @content = o.trimester, 
     @history = t.history 
    from 
     ICD10Master.dbo.icd10obginfectiousCrosswalk i 
    inner join 
     Icd10TempDisease t on i.icdcode = t.Code1 
    where 
     o.trimstatus = @condition 
     and t.Status in (0,1) 

    insert into Icd10TempDisease(disorder, cause, site, site1, site2, manifestation, stage, tconcept1, tconcept2, type, history, finding, code1, annotId, jobid, [content], startId, endId, poa, source, AccountNo, worktype) 
    values(999999, 0, 0, 0, 0, 0, 9, 9, 0, 13, @history, 'positive', @obgCode, 0, @jobid, @content, 0, 0, 'N', 'obgcomplications', @accno, @worktype) 
end 
else if (@condition = 4) 
begin 
    select 
     @obgCode = o.icd10code, @content = o.trimester, 
     @history = t.history 
    from 
     ICD10Master.dbo.icd10obginfectiousCrosswalk i 
    inner join 
     Icd10TempDisease t on i.icdcode = t.Code1 and t.Status in (0, 1, 5) 
    inner join 
     ICD10Master.dbo.obgcomplications o on i.obgcode = o.code 
    where 
     o.trimstatus = @condition2) 

    insert into Icd10TempDisease(disorder, cause, site, site1, site2, manifestation, stage, tconcept1, tconcept2, type, history, finding, code1, annotId, jobid, [content], startId, endId, poa, source, AccountNo, worktype) 
    values(999999, 0, 0, 0, 0, 0, 9, 9, 0, 13, @history, 'positive', @obgCode, 0, @jobid, @content, 0, 0, 'N', 'obgcomplications', @accno, @worktype) 
end 

I Ошибка получения при условии существует.

+0

Дополнительная закрывающая скобка, где o.trimstatus = @ condition2), что не является необходимым. Удаление, которое сделает систему запросов счастливой. – Venkatesh

+0

Я думаю, что это скобка в этой части запроса [= @ condition2)] –

+0

Я думаю, что псевдоним «o» не определен, который используется в случае, если существует запрос. –

ответ

1

У вас есть дополнительная (ненужная) закрывающая скобка в конце вашего второго заявления SELECT. Снимите его, и ошибка должна исчезнуть:

select @obgCode = o.icd10code,@content = o.trimester,@history = t.history from ICD10Master.dbo.icd10obginfectiousCrosswalk i 
inner join Icd10TempDisease t on i.icdcode = t.Code1 and t.Status in(0,1,5) 
inner join ICD10Master.dbo.obgcomplications o on i.obgcode=o.code 
where o.trimstatus [email protected] 
+0

thank u, он работает –

Смежные вопросы