У меня есть таблица со следующей структурой:
Employee Project Task Accomplishment Score Year
John A 1 5 60 2016
John A 1 6 40 2018
John A 2 3 30 2016
Simon B 2 0 30 2017
Simon B 2 4 30 2019
David C 1 3 20 2015
David C 1 2 40 2016
David C 3 0 25 2017
David C 3 5 35 2017
Я хочу создать представление с Oracle SQLout приведенной выше таблицы, которое выглядит следующим образом:
Employee Project Task Accomplishment Score Year UpdateScore Comment
John A 1 5 60 2016 60
John A 1 6 40 2018 100 (=60+40)
John A 2 3 30 2016 30
Simon B 2 0 30 2017 30
Simon B 2 4 40 2019 40 (no update because Accomplishement was 0)
David C 1 3 20 2015 20
David C 1 2 40 2016 60 (=20+40)
David C 3 0 25 2017 25
David C 3 5 35 2017 35 (no update because Accomplishement was 0)
Группировка: Employee-Project-Task.
Правило столбца UpdateScore:
Если для определенного c Employee-Project-Task group значение столбца выполнения превышает 0 за предыдущий год добавьте счет предыдущего года к последнему году для той же группы «Сотрудник-проект-задача».
Например: John-A-1 - это группа, которая отличается от John-A-2 , Таким образом, как мы видим для John-A-1, достижение составляет 5 (что больше 0) в 2016 году, поэтому мы добавляем счет 2016 года со счетом 2018 для John-A-1, и обновленный счет становится 100 .
Для Simon-B-2 выполнение было 0, поэтому обновление для 2019 для Simon-B-2 не будет.
Примечание: мне не нужно поле Комментарий , это там только для большего разъяснения.