У меня есть следующие таблицы баз данных (TableA
):Как получить проценты от максимального количества баллов?
SlNo TeamName WorkInfo
---- ------- -------
1 Team1 0
2 Team1 0
3 Team1 1
4 Team2 1
5 Team2 1
6 Team2 1
7 Team3 0
8 Team3 1
У меня также есть два текстовых полей для выбора даты начала и окончания и хочу, чтобы отобразить детали между выбранными датами.
В настоящее время нижеследующий запрос дает информацию на основе выбранной даты начала и окончания.
SELECT
TeamName,
Count(DISTINCT CASE WHEN WorkInfo = 1 THEN SlNo END) AS Count1,
Count(DISTINCT CASE WHEN WorkInfo = 0 THEN SlNo END) AS Count0
FROM tableA
WHERE (SubmitDate BETWEEN @start AND @end)
GROUP BY TeamName
Он производит результаты, как те, приведены ниже:
TeamName Count1 Count0
-------- ----- ------
Team1 1 2
Team2 3 0
Team3 1 1
Но вместо этого я хочу, чтобы отобразить проценты, основанные на максимальном значении чисел в Count1
и Count0
.
Например, в ожидаемом выходе ниже, значение 3 является максимальным значением Count1
; и на основании этого мне нужно перевести значения счета в проценты от этого максимального значения Count1
. Аналогично, 2 - значение max Count0
; и на основании этого мне нужно найти процент значений Count0
.
TeamName Count1 Count0 Percentage1 Percentage0
-------- ----- ------ ----------- -----------
Team1 1 2 33.33% 100%
Team2 3 0 100% 0%
Team3 1 1 33.33% 50%
Как изменить свое решение для получения ожидаемого результата?
Это таблица базы данных? Что такое DataTable? Является ли ваш заказ значительным? Что вы пробовали? – Liath
Я использовал приведенный ниже запрос. SELECT COUNT (*) FROM TableA. Но это показывает только общее количество таблиц. –
@vipintp да, потому что подсчет записей в таблице – Sybren