Задача такая - есть связь с таблицей базы данных. Она иногда меняется.
Изначально есть старый вариант этой таблицы (импортированный). Мне надо отследить изменения связанной таблицы по сравнению с импортированной, и дать пользователю программы возможность отнести новые записи в определенные группы, а старые - удалить.
Помогите пожалуйста, буду очень благодарен.
Поиск изменений в связанной таблице
Модератор: Naeel Maqsudov
То есть в импортированной таблице записи уже разнесены по категориям, и по итогам работы программы надо получить точное соответствие начальной таблицы связанной, причем все записи должны быть разнесены пользователем по категориям
Еще конкретнее...
В связанной таблице есть записи формата
1 Курица
2 Петух
3 Горбуша
В импортированной таблице пользователь их категоризирует, получается таблица
1 Курица Птица
2 Петух Птица
3 Горбуша Рыба
Через месяц связанная таблица может приобрести вид
1 Петух
3 Курица
4 Горбуша
Нужно организовать проверку соответствия, пропавшие строки удалить, новые добавить и категоризировать...
В таблице до 1000 записей
В связанной таблице есть записи формата
1 Курица
2 Петух
3 Горбуша
В импортированной таблице пользователь их категоризирует, получается таблица
1 Курица Птица
2 Петух Птица
3 Горбуша Рыба
Через месяц связанная таблица может приобрести вид
1 Петух
3 Курица
4 Горбуша
Нужно организовать проверку соответствия, пропавшие строки удалить, новые добавить и категоризировать...
В таблице до 1000 записей
Хм, уточню еще - MS Access 97
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Тогда проще все повально скопировать из связанной таблицы, предварительно объединив эту связанную таблицу с текущей импортированной.Нужно организовать проверку соответствия, пропавшие строки удалить, новые добавить
(Пусть в связанной таблице есть поле Name, а в импортированной - Name и Category
Т.е. как ни крути нужно два этапа... даже пожалуй три.
1
Create table TEMP as select * from IMPORTED
2
Delete from IMPORTED
3
insert into inported
select L.name, I.Category
from LINKED as L left join TEMP as I on L.Name=I.Name
мог напутать с left или right...
но идея такова:
то что ранее было категоризировано, то перевливается из связанной вместе со старой категорией;
если в связанной появилось что-то новое (некатероризированное ранее), то вливается с пустым значением Category.
Т.е. последовательно надо запустить 3 запроса.