Я столкнулся с сложной ситуацией. Я искал все блоги, но не мог найти ответы, близкие к моим ожиданиям. Я бегу следующий запрос:SQL Обновление каждой строки условно
**Table1 Table2**
**ID Status RptGChng RptAChng RptRChng | ID Status**
8614 Green 0 0 0 | 8614 Red
8548 Unknown 0 0 0 | 8548 Amber
2591 Amber 0 0 0 | 2591 Amber
7813 Green 0 0 0 | 7813 Green
8413 Red 0 0 0 | 8413 Red
8183 Green 0 0 0 | 8183 Green
7431 Red 0 0 0 | 7431 Red
7399 Green 0 0 0 | 7399 Red
7776 Unknown 0 0 0 | 7776 Unknown
8609 Green 0 0 0 | 8609 Green
8068 Green 0 0 0 | 8068 Green
RptGChng должен дать мне значение 1, если произошло изменение в зеленой стоимости ид из Table1 в Table2. Мне нужно заполнить таким образом для RptAChng -> Amber и RptRChng -> Red. код, который я написал, чтобы прибыть на это следующим образом:
set [RptGChng] =
IIF(([Status]='Green'),1,0)-
IIF(([Status]=(
SELECT b.[Status] FROM [Table1] a INNER JOIN [Table2] b ON
a.[id]= b.[id] and b.[Status]='Green')),1,0)
Я впечатлен вашей способностью понять вопрос. –
Я использовал второй код, который написал @ M.Ali, но я не могу связать столбец идентификатора нескольких частей. Мне пришлось сделать небольшую настройку, и это было исправлено. UPDATE t1 SET RptGChng = IIF (t1. [Status] = 'Green' AND t1. [Status] <> t2. [Status], 1, t1.RptGChng) , RptAChng = IIF (t1. [Status] = ' Янтарь 'И t1. [Status] <> t2. [Status], 1, t1.RptAChng) , RptRChng = IIF (t1. [Status] =' RED 'AND t1. [Status] <> t2. [Status] , 1, t1.RptRChng) Из таблицы 1 t1 ВХОДЯЩИЙ ПРИСОЕДИНЯЙТЕСЬ Таблица2 t2 ВКЛ t1. [Id] = t2. [Id] – SKP