Member 12697178 Ответов: 2

Получение ошибки при выборе оператора case condition


CASE WHEN (ComponentID = 'SPCPROV_ADD' OR   ComponentID = 'SPCPROV_RED')
THEN CASE ComponentID
        WHEN 'SPCPROV_ADD' THEN @TOT_SPCPROV_ADD
        WHEN 'SPCPROV_RED' THEN @TOT_SPCPROV_RED
        END
THEN CASE ComponentID
        WHEN 'GENPROV_ADD' THEN @TOT_GENPROV_ADD
        WHEN 'GENPROV_RED' THEN @TOT_GENPROV_RED
        END
ELSE CASE ComponentID
        WHEN 'PRV_NEW_GEN' THEN @TOT_GENPROV_ADD
        WHEN 'PRV_CUR_GEN' THEN @TOT_GENPROV_RED
        END
END,


Что я уже пробовал:

ниже приведен код для 1 столбца вставить в 1 таблицу 1 столбец

Случай, когда (ComponentID = 'SPCPROV_ADD' или ComponentID = 'SPCPROV_RED')
Затем корпус буфера обмена
КОГДА 'SPCPROV_ADD', ТО @TOT_SPCPROV_ADD
КОГДА 'SPCPROV_RED', ТО @TOT_SPCPROV_RED
КОНЕЦ
Затем корпус буфера обмена
КОГДА "GENPROV_ADD", ТО @TOT_GENPROV_ADD
КОГДА "GENPROV_RED", ТО @TOT_GENPROV_RED
КОНЕЦ
Дело еще буфера обмена
КОГДА "PRV_NEW_GEN", ТО @TOT_GENPROV_ADD
КОГДА "PRV_CUR_GEN", ТО @TOT_GENPROV_RED
КОНЕЦ
КОНЕЦ,

Richard MacCutchan

Какая ошибка, где?

Member 12697178

Msg 156, Уровень 15, состояние 1, процедура ps_LoanLossProvisioning, строка 1181
Неправильный синтаксис рядом с ключевым словом "THEN".
Msg 102, Уровень 15, состояние 1, процедура ps_LoanLossProvisioning, строка 1275
Неправильный синтаксис возле 'конец оператор:'.
Msg 15151, Уровень 16, Состояние 1, Строка 1
Не удается найти объект "ps_LoanLossProvisioning", потому что он не существует или у вас нет разрешения.

Richard MacCutchan

У вас есть номера строк с ошибками, и у вас есть объяснение того, что отсутствует или неправильно. Однако я понятия не имею, как эти номера строк связаны с вашим вопросом.

Karthik_Mahalingam

пост полный код СП.

2 Ответов

Рейтинг:
1

Patrice T

Вот ссылка на сайт для изучения SQL:
Учебник по SQL[^]


Рейтинг:
0

Karthik_Mahalingam

попробуй вот так

CASE ComponentID  
        WHEN 'SPCPROV_ADD' THEN @TOT_SPCPROV_ADD
        WHEN 'SPCPROV_RED' THEN @TOT_SPCPROV_RED 
        WHEN 'GENPROV_ADD' THEN @TOT_GENPROV_ADD
        WHEN 'GENPROV_RED' THEN @TOT_GENPROV_RED 
        WHEN 'PRV_NEW_GEN' THEN @TOT_GENPROV_ADD
        WHEN 'PRV_CUR_GEN' THEN @TOT_GENPROV_RED
        END


относиться
CASE (Transact-SQL)[^]
СЛУЧАЙ SQL[^]