powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение полей таблицы значениями из другой таблицы
21 сообщений из 21, страница 1 из 1
Изменение полей таблицы значениями из другой таблицы
    #39645931
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, тема избита, но я не могу понять, как правильно написать, чтобы сработало? Я понимаю, что это не правильно.
UPDATE qqq
SET qqq.field1=k_employ.kod
WHERE qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39645940
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rtfm MERGE
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39645947
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky, написала так, но выдает ошибку

MERGE qqq
USING k_employ
ON (qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo)
WHEN MATCHED THEN
UPDATE SET qqq.field1=k_employ.kod
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39645956
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-,

ещё можно "for select ... do" (обернув, естественно, в execute block). Но это на случай, если merge вызывает отторжение.
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646019
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-выдает ошибку
А эта ошибка "красненькая" или "много нипанятных букафф"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646027
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-,

Сразу - "merge into".
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646032
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, ошибка
Invalid token.
Dynamic SQL Error.
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646037
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-,

Вы читайте ответы-то. FB ждёт после merge оператор into.
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646040
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI, читаю, но не очень понимаю, попробовала так, ту же ошибку выдает
MERGE into qqq
USING k_employ
ON (qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo)
WHEN MATCHED THEN
UPDATE SET qqq.field1=k_employ.kod
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646048
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-попробовала так, ту же ошибку выдает

Значит настало время огласить версию сервера или почитать документацию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646051
-danger-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, эээм версия сервера стоит Firebird 1.5, это самая большая проблема? не считая отсутствия у меня какой-нить базы знаний....
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646056
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-версия сервера стоит Firebird 1.5, это самая большая проблема?

Отсутствие знаний всё же больше. И не считать его не получается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646062
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сегодня какое-то нашествие полторашников :)
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646074
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17.05.2018 13:08, Симонов Денис пишет:
> сегодня какое-то нашествие полторашников :)

близиццо сессия...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646143
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-danger-,

Merge не поддерживается, execute block тоже. Остаётся хранимка с "for select ... do". Реально самой написать?
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646145
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIОстаётся хранимка с "for select ... do".

Есть ещё update с подзапросом если задача позволяет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646161
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Да. Кстати, вариант. По быстродействию не гуд. Зато железобетонно.
-danger- , типа того:
Код: sql
1.
2.
3.
4.
5.
UPDATE qqq
SET qqq.field1= ( select k_employ.kod
                  from k_employ         
                  WHERE qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo
                )  



Ещё бы хорошо в where на update поставить проверку на существование записи (exists). Но что-то геморно как-то.
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646167
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

Если нужна ХП, то примерно так: (m1,m6,m7,m8 - переменные с соотв. типами и длинами).

for
select kod, surname, name, otchestvo
from k_employ
into :m1,:m6,:m7,:m8 do

UPDATE qqq
SET field1=:m1
WHERE field6=:m6 and field7=:m7 and field8=:m8;
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646172
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIDimitry Sibiryakov,

Да. Кстати, вариант. По быстродействию не гуд. Зато железобетонно.
-danger- , типа того:
Код: sql
1.
2.
3.
4.
5.
UPDATE qqq
SET qqq.field1= ( select k_employ.kod
                  from k_employ         
                  WHERE qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo
                )  



Ещё бы хорошо в where на update поставить проверку на существование записи (exists). Но что-то геморно как-то.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
UPDATE qqq
SET qqq.field1= ( select k_employ.kod
                  from k_employ         
                  WHERE qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo
                )
where exists ( select k_employ.kod
               from k_employ         
               WHERE qqq.field6=k_employ.surname and qqq.field7=k_employ.name and qqq.field8=k_employ.otchestvo
             )  


Двойной запрос по факту.
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646173
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHasp,

А в полторашке это сработает?
...
Рейтинг: 0 / 0
Изменение полей таблицы значениями из другой таблицы
    #39646273
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,
авторА в полторашке это сработает?

И в 1.5 уже были ХП. Сработает.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение полей таблицы значениями из другой таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]