У меня есть таблица для записей оценок сотрудников, которая связана с другой таблицей, в которой хранятся темы оценок, она имеет 3 типа оценок, таких как:
- Отрицательный и положительный (представлен в таблице как целочисленное значение)«-3, -2» соответственно).
- Нет & Да (представлено как целочисленное значение в таблице «-1, 0» соответственно).
- значение от 1 до 5 (представлено как целое числос тем же значением).
Итак, это пример схемы таблицы:
--------------------
| evaID | int |
--------------------
| employeeID | int |
--------------------
| evaRec | int |
--------------------
, а это пример данных таблицы:
-------------------------------
| evaID | employeeID | evaRec |
-------------------------------
| 1 | 00001 | -3 |
-------------------------------
| 17 | 00001 | -2 |
-------------------------------
| 19 | 00001 | -2 |
-------------------------------
| 19 | 00001 | -1 |
-------------------------------
| 16 | 00002 | 3 |
-------------------------------
| 16 | 00005 | 0 |
-------------------------------
Теперь я хочу выбрать сумму всех записей для конкретного сотрудника в процентах от оценок в соответствии с типами, но с разделением на 3 типа, например, для ex (не связанных с данными этой таблицы) :
- Отрицательный и положительный тип: 20% / 80%
- Нет и Да тип: 30% / 70%
- 1,2,3,4 или 5введите: 10% / 50% / 5% / 15% / 20%
Поэтому в основном я хочу, чтобы оператор select возвращал6 значений с плавающей запятой представляют процент всех предыдущих упомянутых типов как (floatNegative, floatNo, float1, float2 float3 и float4) и, если возможно - , но я знаю, что это сложно, потому что я пока не могу понять логику, стоящую за ним - я хочу, чтобы он возвращал 7-е значение с плавающей запятой, представляющее процент для всех, как плохая, так и хорошая оценка, но я пока не могу понять, как смешать «Да или Нет», то есть 2-процентный процент, с «1,2,3,4 или 5 ", что составляет 5 факторов в процентах!
Так что позже в моем коде на c # я буду использовать результаты выбора, такие как:
- floatNegative = 20 (Negative = 20% и положительный = 100-floatNegative = 80%)
- floattNo = 30 (Нет = 30% и Да = 100-floatNo = 70%)
- и т. д. с 5 другими числами...
Это означает, что у меня есть 3 отдельные группы расчетов процентов в соответствии с упомянутыми выше типами оценки.
Итак, наконец, если я выполню запрос к сотруднику "00001" из таблицы выше, яполучил бы результаты:
- floatNegative = 33,3
- floatPositive = 66,6
- floatNo = 100,0
, потому что у него 1 x «отрицательная» запись (-3) и 2 x «положительных» записей (-2) , всего 3 записи.( в группе оценки «Отрицательный / Позитивный» ), а также у него есть 1 x «нет» записи (-1) , но нет «да»records (0) , поэтому результат равен 100% для "Нет" ( для группы оценки "Нет / Да" ).и меня не волнуют результаты других типов, если у него нет записей для него (например, 1,2,3,4,5), это может быть отрицательное значение с плавающей запятой, поэтому я могу выделить его в своем коде на c #, чтобы выяснить, чтоУ него еще нет записей по этим типам, и он скрывает текст индикатора процента в моей последней разметке asp.net.