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

Можно ли проверить последовательность внесения годов в записи (новая запись=новый год)

11.03.2016, 21:07. Показов 981. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Проблема в следующем:
есть таблица, а в ней записи. В каждой записи содержится значение и год.
Правильным является занесение, при котором есть все года.
Т.е. если начало 2012, а конец 2020 - то должны быть и все года между ними!
Можно ли как-нибудь SQL запросом проверить данное условие???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2016, 21:07
Ответы с готовыми решениями:

Как можно вытащить из БД запись фильтруя записи в поле 'дата' только по значению 'год'?
Как можно вытащить из БД запись фильтруя записи в поле 'дата' только по значению 'год'? К примеру в поле БД 'data' есть запись...

Новая материнская плата 2000х годов
Всем привет! Короче история такая, еще в начале 2000х папа мой где-то надыбал материнку новую, в коробке, полный комплект и так она у нас и...

Записи: проверить, является ли год високосным
Описать тип Date - запись с полями целого типа Day (день), Month (месяц) и Year (год) - и функцию логического типа с параметром типа Date,...

5
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
11.03.2016, 21:09
нужно именно запросом или процедурой тоже можно?
0
 Аватар для VinniPuh
9123 / 6114 / 593
Регистрация: 27.03.2013
Сообщений: 19,948
11.03.2016, 21:18
litvinj, При присутствии отсутствия примера предполагаю, что и на мифическом примере сможете разобраться.
SQL
1
2
3
4
SELECT [Заявления на подключение].КодСотрудника, [Заявления на подключение].[Дата поступления] AS Даты, [Фамилия сотрудника] & " " & [Имя сотрудника] & " " & [Отчество сотрудника] AS ФИО, Сотрудники.должность, Сотрудники.телефон, [Заявления на подключение].Статус, [Заявления на подключение].Технология, [Заявления на подключение].Услуга, [Заявления на подключение].[Наличие тех_возможности], [Заявления на подключение].[Дата информирования], Format([Дата поступления],"yyyy\.mm\.dd") AS Выражение1
FROM Сотрудники INNER JOIN [Заявления на подключение] ON Сотрудники.КодСотрудника = [Заявления на подключение].КодСотрудника
WHERE ((([Заявления на подключение].КодСотрудника)=[Forms]![Статистика]![ВыборСотрудника]) AND (([Заявления на подключение].[Дата поступления])>=[Forms]![Статистика]![ПериодС] AND ([Заявления на подключение].[Дата поступления])<=[Forms]![Статистика]![ПериодПо])) OR ((([Заявления на подключение].[Дата поступления])<=[Forms]![Статистика]![ПериодПо]) AND (([Forms]![Статистика]![ПериодС]) IS NULL)) OR ((([Заявления на подключение].[Дата поступления])>=[Forms]![Статистика]![ПериодС]) AND (([Forms]![Статистика]![ПериодПо]) IS NULL)) OR ((([Forms]![Статистика]![ПериодС]) IS NULL) AND (([Forms]![Статистика]![ПериодПо]) IS NULL))
ORDER BY Format([Дата поступления],"yyyy\.mm\.dd");
Делаю в форме 2 поля со списком - ПериодС и ПериодПо, выставляю нужное и запрос сам по себе после обновления - О ЧУДО показывает значения в нужном периоде.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
11.03.2016, 21:38
Цитата Сообщение от litvinj Посмотреть сообщение
Можно ли как-нибудь SQL запросом проверить данное условие???
Можно. Нужно только иметь эталонный список годов, которые должны быть в наличии. Самый простой способ - создать таблицу СписокГодов с единственным полем Год и перечислить в ней все года, какие только могут встречаться в вашей базе данных. Скажем, все от 2000 до 2220. А дальше примерно так

SQL
1
2
3
4
5
6
SELECT СписокГодов.Год, ВашаТаблица.*
FROM СписокГодов LEFT JOIN ВашаТаблица
  ON СписокГодов.Год = ВашаТаблица.Год
WHERE СписокГодов.Год>=(SELECT MIN(T1.Год) FROM ВашаТаблица AS T1)
  AND СписокГодов.Год<=(SELECT MAX(T2.Год) FROM ВашаТаблица AS T2)
ORDER BY СписокГодов.Год
Если пропуски есть - то напротив номера года будет пустая строка.
0
7 / 4 / 3
Регистрация: 13.08.2013
Сообщений: 82
11.03.2016, 21:40  [ТС]
Спасибо!
Буду разбираться!
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
11.03.2016, 23:08
А если проверку нужно сделать отдельно для каждого значения (чтобы были заполнены все пары "данное событие-год" для всех годов от минимального для максимального именно по этому событию), то

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT Эталон.Значение, Эталон.Год, ВашаТаблица.*
FROM (
    SELECT DISTINCT ВашаТаблица.Значение, СписокГодов.Год
    FROM ВашаТаблица, СписокГодов
    WHERE СписокГодов.Год>=(
         SELECT MIN(T1.Год) 
         FROM ВашаТаблица AS T1 
         WHERE T1.Значение=ВашаТаблица.Значение) 
      AND СписокГодов.Год<=(
         SELECT MAX(T2.Год) 
         FROM ВашаТаблица AS T2 
         WHERE T2.Значение=ВашаТаблица.Значение)
    ) AS Эталон 
  LEFT JOIN ВашаТаблица 
  ON Эталон.Год = ВашаТаблица.Год 
    AND Эталон.Значение=ВашаТаблица.Значение
ORDER BY Эталон.Значение, Эталон.Год;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2016, 23:08
Помогаю со студенческими работами здесь

Как проверить что новая запись вставлена в таблицу? Уведомление о новом сообщении в чате
Нужно чтобы юзеру в его личном кабинете приходило уведомление о новом сообщении в чате адресованное ему. После того, как юзер просмотрел...

Программа Новый год: Чтобы она была актуальной на каждый год, а не только 2012
Чтобы программа была на каждый год, а не только 2012... Должен 1 год прибавляться с наступлением 2012, 2013 и т.д. DateTime dtmToday =...

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

Проверить, представляют ли цифры восьмеричной записи числа строго монотонную последовательность
дано натуральное число n. проверить, представляют ли числа его восьмеричной записи строго монотонную последовательность. при этом...

Проверить наличие записи в базе/добавить запись
Здравствуйте! Пожалуйста, помогите, если переменная: $text_zaprosa равна русскому слову, или нескольким словам, этот-же запрос добавляет...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru