Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 26.06.2018
Сообщений: 120
1
RAD XE3+

Ошибки при создании рейтинга

22.08.2018, 12:39. Показов 1099. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создаю рейтинг учеников. "SUM(Last_test_sours)" считает сумму оценок. Проблема в том что в оценках учащихся есть и 0 и когда например человек с высоким рейтингом получил 0 его рейтинг не опускается.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   ADOQuery2.SQL.Text := 'SELECT SUM(Last_test_sours), id_student FROM Таблица1 GROUP BY id_student';
ADOQuery2.Open;
SetLength(S, ADOQuery2.RecordCount);
SetLength(Names, ADOQuery2.RecordCount);
c1 := 0;
q5 := 0;
while not ADOQuery2.Eof do
 begin
    S[c1] := ADOQuery2.FieldByName('Expr1000').AsInteger; //или, что лучше, непосредственно приводить к нужному типу
    Names[q5] := ADOQuery2.FieldByName('id_student').AsInteger;
     inc(c1);
     inc(q5);
     ADOQuery2.Next;
 end;
Как можно поправить запрос чтобы учитывал ещё и количество тестов которые он прошёл "COUNT(Last_test_sours)"
?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2018, 12:39
Ответы с готовыми решениями:

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

Ошибки при создании класса
Хотел бы узнать об ошибках при создании классов, о том как не надо создавать класс, разбивать код...

Ошибки при создании Q_PROPERTY
День добрый. У меня ошибки при создании Q_PROPERTY например для Q_PROPERTY(QString noImageMessage...

Ошибки при создании .dll
Решил попробывать создать .dll. Столкнулся с проблемами. DLLTEST.h #ifndef _DLLTEST_H_ #define...

6
472 / 161 / 80
Регистрация: 07.10.2015
Сообщений: 379
22.08.2018, 12:57 2
Agent654, можно делать рейтинг по среднему. Т.е. попробуйте выбирать не сумму (SUM) тестов, а их среднее значение (AVG). Или это Вам не подходит?
0
0 / 0 / 1
Регистрация: 26.06.2018
Сообщений: 120
22.08.2018, 13:14  [ТС] 3
Ну как, надо чтобы программа отображала первых 5 студентов с самыми большими рейтингами
0
472 / 161 / 80
Регистрация: 07.10.2015
Сообщений: 379
22.08.2018, 13:18 4
Agent654, ну так чем среднее не нравится? К примеру, у одного за тесты оценки 5 5 5 5 (среднее 5,0), а у другого 5 5 5 0 (среднее 3,75). Вот Вам и рейтинг. Или там еще какие-то дополнительные условия нужно учитывать?
0
0 / 0 / 1
Регистрация: 26.06.2018
Сообщений: 120
22.08.2018, 13:27  [ТС] 5
Да точно. Спасибо! Подходит. Только вот как отсортировать чтоб по убыванию
0
472 / 161 / 80
Регистрация: 07.10.2015
Сообщений: 379
22.08.2018, 13:38 6
Лучший ответ Сообщение было отмечено Agent654 как решение

Решение

Agent654, попробуйте как-нибудь так:
Delphi
1
ADOQuery2.SQL.Text := 'SELECT AVG(Last_test_sours), id_student FROM Таблица1 GROUP BY id_student ORDER BY AVG(Last_test_sours) DESC';
1
0 / 0 / 1
Регистрация: 26.06.2018
Сообщений: 120
22.08.2018, 13:51  [ТС] 7
Огромное спасибо!
0
22.08.2018, 13:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2018, 13:51
Помогаю со студенческими работами здесь

Ошибки при создании таблицы
Подскажите где я допустил ошибку. У меня почти нет опыта работы с БД и в частности с Oracle....

Ошибки при создании заметки
Пару дней назад установил Друпал на Xampp, частенько на разных страницах пришет не большие "user...

Ошибки при создании окна
Здравствуйте, не могли бы вы опять мне(Иванушке Дурачку) помочь? У меня есть библиотека на C++...

Ошибки при создании MessageDialog
Всем привет! Начал делать новый проектик, решил в новой среде, сразу грабли!!! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru