Size: a a a

SqlCom.ru - уголок MS SQL

2021 June 25

А

Артем in SqlCom.ru - уголок MS SQL
ребят помогите разобраться с case
источник

А

Артем in SqlCom.ru - уголок MS SQL
declare @SP_Type nchar(5), @Tag nchar(30), @SP real;
set @Tag = (SELECT TOP 1 Alarm_SP_change.Tag FROM [Module_PAZ_KNS1].[dbo].[Alarm_SP_change] ORDER BY time DESC)
set @SP_Type = (SELECT TOP 1 Alarm_SP_change.Alarm_SP_Type FROM [Module_PAZ_KNS1].[dbo].[Alarm_SP_change] ORDER BY time DESC)
set @SP = (SELECT TOP 1 Alarm_SP_change.Alarm_SP_New FROM [Module_PAZ_KNS1].[dbo].[Alarm_SP_change] ORDER BY time DESC)
PRINT @Tag
PRINT @SP_Type
PRINT @SP

CASE
 WHEN @SP_Type = 'LoLo' then (UPDATE Fact_setpoints SET LL_Fact = @SP WHERE TAG = @Tag)
 WHEN @SP_Type = 'Lo' then UPDATE (Fact_setpoints SET L_Fact = @SP WHERE TAG = @Tag_)
END
источник

А

Артем in SqlCom.ru - уголок MS SQL
Msg 156, Level 15, State 1, Line 19
Incorrect syntax near the keyword 'CASE'.
Msg 102, Level 15, State 1, Line 20
Incorrect syntax near ')'.
источник

А

Артем in SqlCom.ru - уголок MS SQL
не могу правильно синтаксис построить у кейса
источник

А

Артем in SqlCom.ru - уголок MS SQL
CASE @SP_Type
 WHEN  'LoLo' then UPDATE Fact_setpoints SET LL_Fact = @SP WHERE TAG = @Tag
 WHEN 'Lo' then UPDATE Fact_setpoints SET L_Fact = @SP WHERE TAG = @Tag_
END
источник

А

Артем in SqlCom.ru - уголок MS SQL
так тоже не работает
источник

AR

Andrey Rumanec in SqlCom.ru - уголок MS SQL
Используйте if
источник

AR

Andrey Rumanec in SqlCom.ru - уголок MS SQL
If statement
источник

А

Артем in SqlCom.ru - уголок MS SQL
да вот много условий, это я тут в примере всего два указал
источник

А

Артем in SqlCom.ru - уголок MS SQL
придется много if-ов делать
источник

AR

Andrey Rumanec in SqlCom.ru - уголок MS SQL
У вас разные поля для апдейта и разные параметры для фильтра
источник

А

Артем in SqlCom.ru - уголок MS SQL
Update отдельно работает
источник

А

Артем in SqlCom.ru - уголок MS SQL
в самой команде update ошибок нет
источник

AR

Andrey Rumanec in SqlCom.ru - уголок MS SQL
В case оно не работает
источник

А

Артем in SqlCom.ru - уголок MS SQL
ну на сколько я понял, там простое выражение должно быть
источник

А

Артем in SqlCom.ru - уголок MS SQL
без команд
источник

А

Артем in SqlCom.ru - уголок MS SQL
Вот так работает
источник

А

Артем in SqlCom.ru - уголок MS SQL
declare @SP_Type nchar(5), @Tag nchar(30), @SP real;
set @Tag = (SELECT TOP 1 Alarm_SP_change.Tag FROM [Module_PAZ_KNS1].[dbo].[Alarm_SP_change] ORDER BY time DESC)
set @SP_Type = (SELECT TOP 1 Alarm_SP_change.Alarm_SP_Type FROM [Module_PAZ_KNS1].[dbo].[Alarm_SP_change] ORDER BY time DESC)
set @SP = (SELECT TOP 1 Alarm_SP_change.Alarm_SP_New FROM [Module_PAZ_KNS1].[dbo].[Alarm_SP_change] ORDER BY time DESC)
PRINT @Tag
PRINT @SP_Type
PRINT @SP

if @SP_Type = 'LoLo'
UPDATE Fact_setpoints SET LL_Fact = @SP WHERE TAG = @Tag
if  @SP_Type = 'Lo'
UPDATE Fact_setpoints SET L_Fact = @SP WHERE TAG = @Tag
if  @SP_Type = 'Hi'
UPDATE Fact_setpoints SET H_Fact = @SP WHERE TAG = @Tag
if  @SP_Type = 'HiHi'
UPDATE Fact_setpoints SET HH_Fact = @SP WHERE TAG = @Tag
источник

А

Артур in SqlCom.ru - уголок MS SQL
Group By?
источник

А

Артур in SqlCom.ru - уголок MS SQL
И потом доп условия
источник