Форум: "Базы";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
ВнизПомогите с запросом Найти похожие ветки
← →
RomanH © (2006-04-19 10:45) [0]Доброго утра мастера. Существуют три таблицы:
Men
MenID MFam MName
1 aa Bb
2 dd cc
TMen
TMenID TMFam TMName
1001 aa Bb
1003 dd cc
TLog
TLogID TLNewID TLOldID
1 1001
2 1003
Пишу такую процедуру, которая должна редактировать таблицу Tlog( поле TLNewId)
В том случае если значения полей таблицы Tmen такие же как и в таблице Men причем
TLNew=присваивается то значение которое опять таки же если значение полей таблиц
Men и Tmen совпадают. Нижеприведенная процедура, выбирает только первое значение MenID и записи редактируются с одним и тем же MenID. Не переибирая в цикле for select do…CREATE PROCEDURE BEGIN_REPLICATION
Как мне сделать чтобы в TLNewID записывались те значения MenID, если значение полей
AS
DECLARE VARIABLE MEN_ID INTEGER;
begin
for select men.menid from men where exists (select 1 from tmen where (tmen.tmfam=men.mfam and tmen.tmname=men.mname)) into :men_id do
begin
update Tlog
set tlog.tloldid=tlog.tlnewid,Tlog.tlnewid=:men_id
where tlog.tlnewid in (select tmenid from tmen where exists (select 1 from men
where (tmen.tmfam=men.mfam and tmen.tmname=men.mname)));
end
end
Таблиц Men и Tmen совпадали a TmenID=TLOldID.
Men
MenID MFam Mname
1 aa Bb
2 dd cc
TMen
TMenID TMFam TMName
1001 Aa bb
1003 dd cc
TLog
TLogID TLNewID TLOldID
1 1 1001
2 2 1003
← →
Johnmen © (2006-04-19 11:25) [1]Прочитал три раза. Ничего не понял...:)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.013 c