Страница 1 из 1

Поиск изменений в связанной таблице

Добавлено: 11 фев 2005, 09:57
Спартак
Задача такая - есть связь с таблицей базы данных. Она иногда меняется.
Изначально есть старый вариант этой таблицы (импортированный). Мне надо отследить изменения связанной таблицы по сравнению с импортированной, и дать пользователю программы возможность отнести новые записи в определенные группы, а старые - удалить.
Помогите пожалуйста, буду очень благодарен.

Добавлено: 11 фев 2005, 09:59
Спартак
То есть в импортированной таблице записи уже разнесены по категориям, и по итогам работы программы надо получить точное соответствие начальной таблицы связанной, причем все записи должны быть разнесены пользователем по категориям

Добавлено: 11 фев 2005, 10:07
Спартак
Еще конкретнее...
В связанной таблице есть записи формата
1 Курица
2 Петух
3 Горбуша

В импортированной таблице пользователь их категоризирует, получается таблица
1 Курица Птица
2 Петух Птица
3 Горбуша Рыба

Через месяц связанная таблица может приобрести вид
1 Петух
3 Курица
4 Горбуша

Нужно организовать проверку соответствия, пропавшие строки удалить, новые добавить и категоризировать...
В таблице до 1000 записей

Добавлено: 14 фев 2005, 17:48
Спартак
Хм, уточню еще - MS Access 97

Добавлено: 21 фев 2005, 01:31
Naeel Maqsudov
Нужно организовать проверку соответствия, пропавшие строки удалить, новые добавить
Тогда проще все повально скопировать из связанной таблицы, предварительно объединив эту связанную таблицу с текущей импортированной.

(Пусть в связанной таблице есть поле 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 запроса.