Как рассчитать поздравление и дисциплину сотрудника в системе достижений - PullRequest
0 голосов
/ 24 января 2019

У меня есть 2 таблицы записей и персонал, таблица сотрудников с кодом сотрудника, запись таблицы с кодом сотрудника, идентификатор, тип (бит).Если сотрудник допустил ошибку, он добавит 1 запись с кодом сотрудника и типом = 0;Если сотрудник достигает достижения, добавьте новую запись с типом = 1. В конце месяца будет суммировано, у какого сотрудника больше преимуществ в получении вознаграждения (общая производительность сотрудника рассчитывается по формуле: (общий тип= 1) - (total type = 0)) Могу ли я ожидать код, который может дать мне результаты ниже?Итого = поздравление - дисциплина

=================================================================
| EmployeeId    |  achievement   |   mistake     |   total      |
=================================================================
|      1        |        2        |         1        |    1     |
|      2        |        1        |         0        |    1     |
==================================================================

Запись

======================|
| ID | Type |EmployeeId|
|=====================|
| 1  |  0   |   1     |
| 2  |  1   |   1     |
| 3  |  1   |   1     |
| 4  |  1   |   2     |
=======================

Ткс за чтение!

1 Ответ

0 голосов
/ 24 января 2019

использовать условное агрегирование

   select EmployeeId,
   sum(Type=1) as achievement,
   sum(Type=0) as mistake,
   sum(Type=1)-sum(Type=0 ) as total
   from cte group by EmployeeId

Демонстрационная ссылка

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