Как посчитать сотрудников, которые были повышены? - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь выяснить, как составить расчет или запрос, чтобы подсчитать количество сотрудников по классам, повышаемым за каждый период оплаты.

* подсчитать количество записей, чья ценность в классе увеличилась за период оплаты.

Пример решения: Soln:

  1. Год Количество зарплатных периодов
  2. 2018 16 2
  3. 2019 6 1
  4. 2019 10 1

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

код в Excel, который, кажется, работает, но должен быть передан в доступе из-за количества записей.Я думаю, что внутреннее соединение сделало бы эту работу.=AND(B2<>B3,C2=C3,D3>D2)

enter image description here

enter image description here

1 Ответ

1 голос
/ 14 мая 2019

Исходя из EXCEL , вы можете получить свое решение, предполагая, что ваши записи в последовательности для столбцов Год , Зарплата , Сотрудник & Оценка .

Добавьте еще один столбец, чтобы определить, есть ли повышение оценки для данного конкретного Период расчета .

add column
Для ячейки Excelдля справки, " Год " находится в ячейке A1

Установите формулу 1-й ячейки этого столбца на false set 1st cell of new column to false

Для следующей ячейки в этом новом столбце установите ее следующим образом: formula for checking grade increase
Вышеприведенные проверки проверяют, есть ли повышение оценки для данного конкретного Период платежной ведомости .
Объяснение формулы в последовательности таково: 1. Check if year same (A3=A2), 2. Check if Payroll Period is different(B3<>B2), 3. Check if Employee is the same (C3=C2) и, наконец, 4. Check if there is a change in grade (D3=D2).
Скопируйте эту формулу до остального диапазона.
fill formulas

Далее , вы можете начать с pivot .
Добавить вашу сводную таблицу из вашей таблицы / диапазона с помощью следующегоpivot fields
Фильтр Grade Increase на true, а также изменение агрегации значений Employee с Sum на Count.
Вы получите следующее:
pivot table

Я бы переименовал Count of Employees, чтобы сделать его более значимым.Field rename

Одно предостережение для вышеупомянутого подхода состоит в том, что если оценка была повышена в начале 1-го Payroll Period года, это увеличение не будет зафиксировано.Для этого вы можете удалить проверку года из формулы A3 = A2 .


Редактировать:

Провести небольшое исследование, возможно, вы можете сделать

select t1.*, (t1.Grade > t2.Grade) as Grade_Increase
from YourTableName t1 left join YourTableName t2 on
t1.Employee = t2.Employee and
(((t1.Year - 2018)*26) + t1.Payroll_Period) = 
(((t2.Year - 2018)*26) + t2.Payroll_Period - 1) -- -1 to get the prior record to compare grades

То, что сделано выше, по существу объединяет таблицу с самим собой.
Записи, которые являются «следующими в последовательности», объединяются в одну строку.И сравнение сделано.
Это не было проверено в Access.
Замените 2018 на ваш базовый год.Я использую 2018 для вычисления порядкового номера записей.Сначала я подумал об использовании общих табличных выражений, rank и row_number.Но доступ, кажется, не поддерживает эти функции.

...