Расчет ежедневных целей в зависимости от типа файла - PullRequest
0 голосов
/ 16 июня 2020

У меня есть таблица в Access 2016, которая содержит заполненные файлы по сотрудникам по дате завершения. Мне нужно создать таблицу, которая устанавливает ежедневные цели для сотрудников по дате завершения.

Ежедневные цели определяются типом завершенного файла - если сотрудник заполняет ТОЛЬКО исходные файлы, его дневная цель - 7; в противном случае их дневная цель - 9.

Пример ниже для иллюстрации.

  • Мария 01.06.2020 Начальная
  • Мэри 01.06.2020 Начальная
  • Мэри 01.06.2020 Начальная
  • Кэти 6 / 2/2020 Продление
  • Кэти 02.06.2020 Начальное
  • Джессика 01.06.2020 Продление
  • Джессика 01.06.2020 Делегировано
  • Jessica 1/6/2020 Renewal

Вывод таблицы, который я хотел бы создать для ежедневных целей сотрудников.

  • Сотрудник: Мэри; Дата завершения: 01.06.2020; Пройдено Количество: 3; Ежедневная цель: 7 (b / c работали только исходные файлы)
  • Сотрудник: Кэти; Дата завершения: 02.06.2020; Пройдено Количество: 2; Ежедневная цель: 9 (b / c работает с файлами смешанного типа)
  • Сотрудник: Джессика; Дата завершения: 01.06.2020; Завершено Количество: 3; Ежедневная цель: 9 (b / c работает с файлами смешанного типа)

Есть какой-нибудь совет, как лучше всего рассчитать ежедневные цели? Я пробовал использовать вычисляемое поле с оператором IIF, но он работает некорректно, поскольку он просматривает данные на уровне отдельной записи, а не на агрегированном уровне для каждой даты завершения.

1 Ответ

1 голос
/ 16 июня 2020

Вы можете использовать запрос GROUP BY, чтобы получить общее количество задач по сотруднику в данный день, вместе с подзапросом, который подсчитывает количество задач, которые не являются «начальными», чтобы получить эту информацию:

SELECT 
    T.Employee, 
    T.TaskDate, 
    Count(T.TaskStatus) AS TotalTask,
    (SELECT COUNT(*) FROM tblTask AS T1 WHERE T1.Employee=T.Employee AND T1.TaskDate=T.TaskDate AND T1.TaskStatus<>"Initial") AS NotInitial,
    IIF(TotalTask=NotInitial,7,9) AS TaskTarget
FROM  tblTask AS T
GROUP BY T.Employee, T.TaskDate;

enter image description here

С уважением,

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