1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 30
|
|
1 | |
Несколько дат в одном поле07.10.2015, 10:19. Показов 3171. Ответов 11
Метки нет (Все метки)
Здравствуйте, искал ответ на свой вопрос не один день так и не нашел.
Ситуация: есть простая база которая отслеживает сроки исполнения мероприятия, грубо: таблица с 3-мя полями: -название мероприятия, -контрольный срок и -дата снятия с контроля база по запросу выдает просроченные мероприятия, т.е. те у которых "контрольный срок" меньше текущей даты и нет "даты снятия" с контроля НО! очень часто мероприятие возвращается на доработку (иногда множество раз), тогда контрольный срок меняется. Вопрос: как сделать, что бы в поле контр. срок хранилось новый контрольный срок и все предыдущие, с полем "дата снятия" тоже самое. Это нужно, что бы отслеживать когда и сколько раз мероприятие возвращалось на доработку. Тут же возникает еще вопрос: в таком случае выборка просроченных мероприятий по принципу контр. срок меньше текущей даты и дата снятия равна нулю уже работать не будет, поэтому нужна операция которая будет сравнить именно последние даты, и нужна функция которая будет считать количество дат и сравнивать их. Пробовал MS acceess 2007, там в одном поле можно хранить несколько значений, но только текстовые и из списка, что мне не подходит. Всем откликнувшимся большое спасибо.
0
|
07.10.2015, 10:19 | |
Ответы с готовыми решениями:
11
Форма.Несколько записей в одном поле Сделать несколько списков в одном поле Хранение в одном поле нескольких дат, и работа с ними Несколько значений в одном поле |
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
07.10.2015, 10:30 | 2 |
Сделайте подчиненную мероприятиям таблицу с датами и их типом (контрольная, снятие, ...)
1
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
07.10.2015, 10:38 | 3 |
basil_85,
1. думаю, что можно поступить так: если подошел контрольный срок, то поле Дата снятия с контроля не заполняется и делается новая запись для данного мероприятия в котором в поле контрольный срок вводится дата нового срока. Поле Дата снятия с контроля продолжает оставаться пустым. Если будет необходимость еще раз перенести срок, то делаете третью запись. При завершении выполнения мероприятия во все три записи в поле Дата снятия с контроля ставите одну и туже дату. Если когда, то Вам надо будет просмотреть историю по данному мероприятию, то фильтр настраиваете по полю название мероприятия и он вам покажет все три записи со всеми продлениями. 2. по второму вопросу, что-то не уловил суть то есть запись блокируется или не выбирается, или не показывается?
0
|
Модератор
|
|
07.10.2015, 11:10 | 4 |
мне кажется, что удобнее иметь 2 таблицы(не считая справочников)
таб1 --мероприятия -ид1 -название -назначение -инициатор -дата начала -дата окончания по плану -дата снятия с контроля -фио снявшего таб2--этапы/стадии работы -ид2 -ид1 -дата начала -название стадии -ответственный исполнитель -дата сдачи
0
|
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 30
|
|
07.10.2015, 13:58 [ТС] | 5 |
вариант с если Добавлено через 5 минут
0
|
8859 / 5904 / 585
Регистрация: 27.03.2013
Сообщений: 19,567
|
|
07.10.2015, 14:01 | 6 |
Если сделаете подчиненную таблицу, то по связи будет присваиваться уникальный код для каждого срока именно этого мероприятия, по нему в запросе группируется и выбирается только даты этого, а не всех мероприятий, о чем вам писалось уже выше, а вы упрямо стоите на своем.
0
|
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 30
|
|
07.10.2015, 14:04 [ТС] | 7 |
Да, после исполнения мероприятия ставится отметка о выполнении и направляется в контролирующий орган и уже оттуда мероприятие приходит либо утвержденным либо на доработку, так, что оставить данное поле пустым нельзя.
0
|
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
|
|
07.10.2015, 14:21 | 8 |
Это еще почему? В подчиненной таблице указывается код мероприятия и по нему выбираются записи дат только этого мероприятия. Поэтому и таблица называется подчиненной.
1
|
451 / 239 / 14
Регистрация: 29.10.2014
Сообщений: 1,009
|
|
11.10.2015, 00:02 | 9 |
Напрашивается сборка:
Добавлено через 6 минут Забыл,где кнопка. Короче,4 таблицы:Мероприятия,Даты,ТипДаты и сборка Итоги
0
|
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 30
|
|
16.10.2015, 12:55 [ТС] | 10 |
Спасибо всем, просто я не знал какие поля главной и подчиненной таблиц связать, разобрался, помогло. Теперь возник вопрос как сделать запрос по двум таблицам? (раньше я такого не делал)): что бы выдал просроченные мероприятия, т.е. те у которых последняя [дата1] меньше текущей даты и [дата2] напротив пустая, в моем примере должен выдать 1м, 2м, 4м, и сколько раз мероприятие возвращалось на доработку.
Оч. нужно, это не школьное задание, а реальная задача в организации.
0
|
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||||||
17.10.2015, 01:38 | 11 | ||||||||||
Сообщение было отмечено basil_85 как решение
Решение
SQL-выражение запроса
1
|
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 30
|
|
19.10.2015, 06:22 [ТС] | 12 |
mobile, вы просто волшебник!)) Работает, только простите за тупизну((, я то выложил пример, а база сложнее и SQL коды для меня абра-кадабра, можно ли сделать такие запросы в конструкторе запросов? Если же нельзя скиньте плиз ссылку на простой и понятный учебник по этим самым кодам.
0
|
19.10.2015, 06:22 | |
19.10.2015, 06:22 | |
Помогаю со студенческими работами здесь
12
Несколько ссылок в одном поле Несколько значений в одном поле Datagridview Несколько значений в одном поле Несколько полей Table2 в одном поле Table1 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |