![]() |
|
Модераторы: Akina |
![]()
|
|
| swetik1981 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 20.12.2007 Репутация: нет Всего: нет |
Имеется таблица с исчерпывающим перечнем всех студентов:
Имеется совокупность одинаковых по структуре таблиц с результатами тестирования студентов (каждому тестированию соответствует одна таблица). Очень упрощённо структура таблицы такая:
При этом в тесте принимают участие не все студенты из списка (кто-то болел, сачковал и т.д.), соответственно отсутствующих в таблтце просто не будет. Мне необходимо вывести таблицу участия студентов в тестированиях за год и статистику (количество) тестов, в которых они учавствовали. Для этого я создаю таблицу совпадений: SELECT FIO, Q1.isTest1 AS isTest1, Q2.isTest2 AS isTest2, ... FROM allStudents, (SELECT id, 1 AS isTest FROM Table1) AS Q1, (SELECT id, 1 AS isTest FROM Table2) AS Q2, ... allStudents LEFT JOIN Q1 ON allStudents.id=Q1.id, allStudents LEFT JOIN Q2 ON allStudents.id=Q2.id, ... У меня в результате получается такая результирующая таблица:
Единичка соответствует участию студента в тесте. Нет проблем подсчитать через ADO-recordset и вывести в отдельную колонку количество сданных студентами тестов. Но это очень долго при большом объёме таблиц и неудобно. Нельзя ли это как-то сделать во время исполнения SQL-запроса? Первая мысль, которая приходит в голову, это первую строку вышеуказанного запроса дополнить суммой полей: SELECT FIO, Q1.isTest1 AS isTest1, Q2.isTest2 AS isTest2, ..., isTest1+isTest2+... AS Summa FROM ... Но если хотя бы одно из полей содержит Null сумма полей также будет Null. Что же тут можно придумать? |
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Нет, первая и единственная мысль - выбросить этот бред
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| swetik1981 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 20.12.2007 Репутация: нет Всего: нет |
Нет, первая и единственная мысль - выбросить этот бред
А вот и бредовое решение, позволяющее ничего не делать заново:
Проблема решена.. |
||||
|
|||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |