Обновление нескольких столбцов на основе нескольких условий - PullRequest
0 голосов
/ 07 февраля 2019

Ниже приведена таблица с некоторыми результатами как для утренней, так и послеобеденной сессии (для разных периодов).Я хотел бы обновить результаты, основываясь на простом условии:

Проверьте, было ли изменение в 2 следующих утренних сессиях - если не добавить 5 к баллу: Пример: ID = 1, Mor2 = C, Mor3= C, так что Score_M3 = 5 + 5 = 10 (новое значение).Все обновленные значения отмечены в таблице «Требуются».Как я могу написать это в SQL?У меня будет много столбцов и идентификаторов.

Мой набор данных:

    ID  Mor1 Aft1  Mor2  Aft2  Mor3  Aft3  Score_M1 Score_A1  Score_M2  Score_A2  Score_M3  Score_A3
    1   A    A     C     B     C     B       1        1          1         1         5        6
    2   C    C     C     B     C     B       1        1          1         1         4        5
    3   A    A     A     A     A     A       1        1          1         1         4          1

Требуется:

    ID  Mor1 Aft1  Mor2  Aft2  Mor3  Aft3  Score_M1 Score_A1   Score_M2  Score_A2   Score_M3   Score_A3
    1   A    A     C     B     C     B         1        1         1         1          *10        6
    2   C    C     C     B     C     B         1        1        *6         1          *9         5
    3   A    A     A     A     A     A         1        1        *6         1          *9         1

1 Ответ

0 голосов
/ 07 февраля 2019

Вот SQL, с чего можно начать.Вы можете добавить еще много столбцов по своему усмотрению.

Can we restate as SAME, rather than Change?
If Mor1 = Mor2 then add +5 to Score2
If Mor2 = Mor3 then add +5 to Score3

UPDATE [StackOver].[dbo].[UpdateMultiCols]
   SET 
       [Score_M1] = Score_M1 

      ,[Score_M2] = Score_M2 +
      Case When Mor1 = Mor2 Then 5 else 0 End 

      ,[Score_M3] = Score_M3 +
       Case When Mor2 = Mor3 Then 5 else 0 End 
GO

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...