Форум: "Базы";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
ВнизЦикл в хранимой процедуре Найти похожие ветки
← →
RomanH © (2006-04-17 14:17) [0]Мастера подскажите каким образом можно сделать такую конструкцию
While not DataSet1.EOF do
begin
if DataSet1.FieldValue[N1]=DataSet2.FieldValue[N1] then
Действие1
else
Действие2
end;
в хранимой процедуре.
← →
RomanH © (2006-04-17 14:19) [1]Извините Next забыл набисать
While not DataSet1.EOF do
begin
if DataSet1.FieldValue[N1]=DataSet2.FieldValue[N1] then
Действие1
else
Действие2
DataSet1.Next;
end;
← →
Johnmen © (2006-04-17 14:24) [2]FOR SELECT ...
А почему ты не читаешь документацию?
← →
RomanH © (2006-04-17 14:46) [3]Я читаю документацию (LangRef.pdf) .Не могу понять как это работает
select count(*) from Table1 into Rec_Count;
if (i<=Rec_Count) do
begin
for select N1 from Table1 into :NN1 do
begin
select N1 from Table 2 into :NN2
if NN1=NN2 then Действие
end
i=i+1;
end;
Подскажите в таком случае будут ли все значения N1 из Table1 сравниваться со всеми значениями Table2.
← →
Johnmen © (2006-04-17 14:54) [4]
> Подскажите в таком случае будут ли все значения N1 из Table1
> сравниваться со всеми значениями Table2.
Не понял... Каждое с каждым что ли??? Зачем???
Что вообще надо?
← →
RomanH © (2006-04-17 15:01) [5]Имеются таблицы Table1 и Table2.
В хранимой процедуре необходимо сравнить значения из Table1 со значениями Table2. Если такие записи существуют то их надо удалить из Table1. Оставшиеся записи таблицы Table1 добавить в Table2.
← →
Desdechado © (2006-04-17 15:07) [6]если сравнение по одному полю, то все проще
delete from T1 where N1 IN( select N2 from T2 );
insert into t2 select * from t1
← →
Johnmen © (2006-04-17 15:09) [7]
1. DELETE FROM Table1 T1 WHERE EXISTS (SELECT 1 FROM Table2 T2 WHERE T1.Field=T2.Field)
2. INSERT INTO Table2 SELECT * FROM Table1
← →
RomanH © (2006-04-17 15:18) [8]
> Johnmen ©
Подскажите где можно почитать про понимание языка SQL.
Мне бы тоже хотелось бы как вы, все это реализовать двумя строчками.
Да вторую строку я понимаю полностью а вот с первой ни как не соображу.
DELETE FROM Table1T1 WHERE EXISTS (SELECT 1 FROM Table2 T2
T1.Field=T2.Field)
← →
Sergey13 © (2006-04-17 15:25) [9]2 [8] RomanH © (17.04.06 15:18)
DELETE FROM Table1 T1 WHERE EXISTS (SELECT 1 FROM Table2 T2 T1.Field=T2.Field)
Подстрочник.
Удалить из таблицы1 записи, для которых существует хотя бы одна запись в таблице2 с кодом, таким же как и в таблице1.
8-)
ЗЫ: Поиши в сети по "ГРУБЕР + SQL" для понимания.
← →
Johnmen © (2006-04-17 15:27) [10]Да в том же самом LangRef.pdf про всё это написано. В спецификации команд SELECT и DELETE.
Ещё полезно просто спецификацию SQL92 почитать. Где искать не скажу, не помню...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c