Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330

Sql запрос: переход на следующий учебный год

21.01.2016, 17:56. Показов 1108. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня в базе есть таблицы Student,klass,predmet так дали.

Допустим ученики закончат 11 класс, а 10-й класс станет 11.
Вопрос такой, как перейти на следующий учебный год?
Чтобы ученики 10 класса стали 11-и, а 11 класс удалить из базы.

Заранее огромное спасибо.
Вложения
Тип файла: rar 123-2.rar (35.1 Кб, 13 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.01.2016, 17:56
Ответы с готовыми решениями:

Microsoft Access переход между классами на следующий учебный год
Как сделать, чтобы осуществлялся переход между классами на следующий учебный год, а 11 класс был бы в архиве.

Можно ли сделать, чтобы при переходе на следующий учебный год
Можно ли как-нибудь сделать, чтобы при переходе на следующий учебный год, 11 класс,менялся на "Выпустившиеся"?

Сделать переход на следующий учебный год
Как сделать переход на следующий учебный год(чтобы к примеру 2 класс стал 3 и так далее, а 11 чтоб менялся на архив)? В аксессе просто...

18
Эксперт MS Access
2840 / 1380 / 217
Регистрация: 13.05.2011
Сообщений: 4,223
21.01.2016, 19:43
Khaker_tt, Вот тоже уважаемый Пух делал. Там должен быть переход по классам.
а Вот
Цитата Сообщение от Khaker_tt Посмотреть сообщение
11 класс удалить из базы.
совсем не надо, т.к. из базы данных удаляются и исправляются ошибки, хотя и их в некоторых случаях оставляют. Надо просто, чтобы те, кто закончил 11 класс просто не показывались, т.е. класс должен быть привязан к учебному периоду (как-то так).
2
 Аватар для VinniPuh
9131 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,988
21.01.2016, 20:45
Цитата Сообщение от Khaker_tt Посмотреть сообщение
...как перейти на следующий учебный год?...
В вашей БД много иностранных Имен, которые плохо знаю и соответственно делать на вашем примере не охота, по этому расскажу как, на словах.
В табличке - Классы - должно быть поле с - ГодомОбразованияКласса
Что бы вычислить № класса нужно к примеру в режиме конструктора запроса, в свободном поле написать выражение типа такого:
SQL
1
№Класса: DateDiff("yyyy";DateSerial([ГодКласса];9;1);DATE())+(Format(DateSerial([ГодКласса];9;1);"mmdd")>Format(DATE();"mmdd"))+1
Каждое 1 Сентября № класса будет меняться +1
Чтобы не выводить класс, который уже больше не учится, то можно создать логическое поле и по нему производить отбор -
Да/Нет
или под № Класса
<=11
Как то так.
Если чё вот в этой теме - Расчет курса - примерчик, но там не про Классы школы. а про Курсы ВУЗа.
2
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
22.01.2016, 07:23  [ТС]
PuhKMV, Спасибо. Мне надо что бы удалилась 11-класс. Потому что я каждый год сделаю backup. Мне нужны ежегодный База.
0
 Аватар для VinniPuh
9131 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,988
22.01.2016, 07:27
Из БД ничего удалять не нужно, База Данных для того и предназначена, дабы ХРАНИТЬ ВСЕ ДАННЫЕ.
Если какието данные не нужны, то их можно не выводить.
А вдруг потом понадобится, а вы их бездумно удалили. Нехорошо.
1
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
22.01.2016, 07:31  [ТС]
PuhKMV, Но мне придётся каждый год добавит одно и тоже информацию в базу. Допустим 10 класс как я сделаю так чтобы они стали 11 класс вот в чём проблема?
0
 Аватар для VinniPuh
9131 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,988
22.01.2016, 07:42
Цитата Сообщение от Khaker_tt Посмотреть сообщение
...как я сделаю так чтобы они стали 11 класс вот в чём проблема...
Вы пример смотрели? Выражение под свой пример в запрос вставлялм?
Ни чего делать не нужно будет, запрос сам АВТОМАТИЧЕСКИ за вас всё сделает.
Как только наступит 1 Сентября, то вы будете прошлогодний 10 класс видеть как 11 класс.
А у того класса, что до этого был 11 нужно просто поставить галочку, типа - Выпущен и указать в условии отбора под этим классом - Нет, тогда его просто не будет видно в этом запросе, а в других запросах можно указать - Да, тогда данный класс у вас сохранится для Истории, Статистики и Сравнительного анализа.
А то если вы удалите данный класс, то не сможете узнать, кто у вас учился в данном класе.
Лет через 10 половина учеников забудет своих однокласников, попросят вас освежить их память, а вы разведете руками и скажите, я всех удалил. Ваще будет супер.
0
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
22.01.2016, 07:47  [ТС]
Цитата Сообщение от Khaker_tt Посмотреть сообщение
backup
мне совсем не нужны 11-классный и первоклассники их надо удалит из базы. Месту надо освободит на первоклассники.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,936
Записей в блоге: 4
22.01.2016, 07:58
я бы создала таблицу КЛАСС с полями
--ид_класса
--год_набора
--название

остальные таблицы ссылались бы на ид_класса
для перевода года высветить записи и откорректировать название
опираться на год создания не всегда корректно --может быть открыт дополнительный класс, например 10д

идгодстароеновоепримечаниекласный рук
12015  
22014  
32013  
42012  
52011  
62010  
72009  
82008  
9200710а  
10200610а11а  
11200610б11б  
12200610в11в  
13200610г11г  
14200610д11д  
15200511а выпущен 
16200511б выпущен 
17200511в выпущен 
18200511г выпущен 
19200411а выпущен 
202016добавлен 
212016добавлен 
22200611е11едобавлен 
1
 Аватар для VinniPuh
9131 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,988
22.01.2016, 08:06
Цитата Сообщение от Khaker_tt Посмотреть сообщение
...мне совсем не нужны 11-классный и первоклассники их надо удалит из базы...
Ну если не хотите, что бы за вас всё делалось автоматически, типа не ищите легких путей, тогда исправляйте № класса вручную, а ненужные удаляйте тоже ручками, зачем тогда было вопрос задавать. непонятно.
1
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
22.01.2016, 08:29  [ТС]
shanemac51, Спасибо Вам. Мне только не понятно поля новое . Не получается ли
бе поля новое сразу на место заменят 1-й класс на 2 и 2 на 3 и так далеее? Если можно какой ни будь пример.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,936
Записей в блоге: 4
22.01.2016, 09:07
поле новое добавила для наглядности, для сравнения с текущим годом
1
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.01.2016, 09:53
Цитата Сообщение от Khaker_tt Посмотреть сообщение
PuhKMV, Но мне придётся каждый год добавит одно и тоже информацию в базу. Допустим 10 класс как я сделаю так чтобы они стали 11 класс вот в чём проблема?
А вы не храните номер класса, а храните год поступления в школу. А номер класса вычисляйте по формуле

Iif(Year(Date())-ГодПоступления Between 0 and 11;Year(Date())-ГодПоступления;Null)
Добавлено через 3 минуты
И на будущее запоминайте: если вам в базе нужны данные, которые должны автоматически меняться с течением времени - это повод сделать паузу, проанализировать сиутацию, и найти другие данные, которые от времени не зависят, и из которых нужные вам данные можно получить вычислением. И хранить в базе именно эти другие, не зависящие от времени, данные.
1
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
22.01.2016, 09:54  [ТС]
texnik-san, Спасибо. Если было бы какой то пример я был бы рад.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.01.2016, 10:12
Запросто. Можете попробовать поменять системную дату на другие годы и посмотреть, что выдаст запрос.
Вложения
Тип файла: rar Class.rar (18.9 Кб, 11 просмотров)
1
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
22.01.2016, 10:15  [ТС]
texnik-san, Спасибо огромное.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.01.2016, 10:27
Так, только я, кажется, по привычке нумерацию классов начала с нуля )) Ну поправите там в формуле сами уже.

Добавлено через 1 минуту
Константа 122 в формуле - это число дней от 1 сентября до 1 января (школьный год начинается не тогда же, когда обычный, поэтому нужно сдвинуть)

Добавлено через 7 минут
Вот, доплюсовала годик ))

SQL
1
2
3
4
5
6
7
SELECT Сlass.ID, Сlass.InputYear, 
IIf(1+YEAR(DATE()-122)-[InputYear] BETWEEN 1 AND 11,
    1+YEAR(DATE()-122)-[InputYear] & "-" & [Letter],
    IIf(1+YEAR(DATE()-122)-[InputYear]<1,
         "еще не поступили (будущий 1-",
         "уже выпустились (бывший 11-") & [Letter] & ")") AS ClassName
FROM Сlass;
1
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,936
Записей в блоге: 4
22.01.2016, 10:30
моя дочь училась в нулевом классе, т.е. училась в 1а-2а-3а-4а-5а.........
соседский же пацан пошел в школу на год позднее в обычный 1-й класс, 1б,2б,3б,5б, у него не было 4 класса
-----
и кончили школу одновременно
-----
так что автоматика и школа вещи мало совместимые
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.01.2016, 10:35
Цитата Сообщение от shanemac51 Посмотреть сообщение
так что автоматика и школа вещи мало совместимые
Совместимые, только для таких случаев нужно создавать дополнительную таблцу, в которой описывать все существовавшие схемы перехода из класса в класс, и использовать подстановку из этой дополниетельной таблицы.

В любом случае, год поступления - это инварианта, и в базе должна храниться именно она.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2016, 10:35
Помогаю со студенческими работами здесь

Не работает SQL запрос с веб формы (учебный материал)
Добрый. Решил научиться использовать базы данных в php. Работаю по книге Бретта Маклафлина php и mysql исчерпывающее руководство 2е...

Проверить, является ли заданный год високосным и вывести следующий високосный год
В первую строку выведите YES, если данный год является високосным и NO, если не является. Во второй строке нужно вывести следующий...

Запрос SQL на вычисление прибыли за год
возможно ли имея одну таблицу со всеми нужными мне данными и другую(с полями Год и Общая прибыль) создать запрос, который бы из первой...

Определить, сколько денег нужно взять у родителей, чтобы прожить учебный год
Добрый день! Задачка такова: Ежемесячная стипендия студента составляет А руб, а расходы на проживание превышают стипендию и составляют В...

Запрос SQL. Определить сотрудников, которые пришли на работу в год, в котором пришло наибольшее количество человек
Вывести LAST_NAME сотрудников, которые пришли на работу в год, в котором пришло наибольшее количество человек. Могу отдельно вывести...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru