Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Update записей по результату select
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите пожалуйста по такому вопросу. Есть селект: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Он выбирает множество записей. Нужно в таблице PERS.ADV сделать update записей, которые попали в данную выборку, то есть найти все записи у которых COD_ZAP равен значениям столбца 1 из результата select'a и обновить поле SUM1 в этой же таблице значениями столбца 2 из результата select'a соответственно. Как это можно сделать? Можно ли SQL запросом или нужно делать процедуру/функцию? Можно так же сделать триггер, чтобы после вставки новых записей так же происходил такой update но только по одной вновь вставленной этой записи? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2015, 10:35 |
|
||
|
Update записей по результату select
|
|||
|---|---|---|---|
|
#18+
vitabios, Добрый день. Вы группируете по 2-м полям, а это значит, что у вас по одному COD_ZAP может вернуться несколько сумм - по одной для разных REGNUMB. Какую же из этих сумм вы хотите записать в SUM1? Кроме того, для этой задачи можно рассмотреть использование MQT - отдельной таблицы, основанной на этом запросе (или немного другом в зависимости от того, какие еще похожие запросы вы будете делать). Соответствующие изменения данных в этой таблице (refresh) при изменении данных в базовых таблицах DB2 может делать сама сразу (т.н. refresh immediate mqt), либо по отдельной команде (refresh deferred mqt). Но это будет именно отдельная таблица, а не поле в базовой таблице как вы хотите. Подойдет ли вам такое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 09:58 |
|
||
|
Update записей по результату select
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, одна COD_ZAP в моей БД не может принадлежать разным REGNUMB. Хотелось бы все таки обойтись без материализованных таблиц, это возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 10:01 |
|
||
|
Update записей по результату select
|
|||
|---|---|---|---|
|
#18+
vitabiosодна COD_ZAP в моей БД не может принадлежать разным REGNUMB.Зачем же тогда вы включаете это поле в группировку? И зачем вообще таблица STRAH здесь используется? Она идет внешним соединением, и, если по какому-то ADV.COD_ORG=STRAH.COD_ZAP будет несколько записей в STRAH, то суммы умножатся на это кол-во записей. Вы точно уверены в правильности такой логики? INSVED.COD_ZAP допускает NULL? Если нет, в чем смысл left join INSVED и INSVED.COD_ZAP is not null в WHERE? Почему не INNER JOIN? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 11:25 |
|
||
|
Update записей по результату select
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, таблица STRAH для наглядности была, то есть значению из STRAH я в приложение само входил и проверял правильность выборки. Давайте уберем его из запроса. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 13:14 |
|
||
|
Update записей по результату select
|
|||
|---|---|---|---|
|
#18+
vitabios, Как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 13:22 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=39011282&tid=1600770]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 277ms |
| total: | 437ms |

| 0 / 0 |
