powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / update insert
7 сообщений из 7, страница 1 из 1
update insert
    #34271022
Тимур Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
такой вопрос
Имеется таблица.заполняю поля
insert into res1 (Наимен_страны ,Количество ,Ст_тыс_долл_США)
(select c.small_name, sum(t.g31b), sum(t.g46) from country c,
temp2 t where t.g15_17=any(select cntkod from countrygroupdef where
groupkod=vr_groupkod) and t.g15_17=c.id and char
(t.g33a,4)=vr_g33a_4 group by c.small_name);

Как сделать update если сам запрос select sum(t.g31b), sum(t.g46) from
country c, temp2 t where t.g15_17=any(select cntkod from countrygroupdef where
groupkod=14) and t.g15_17=c.id and char(t.g33a,4)='8703' group by c.small_name возвращает три строки ?

update res1 set(Количествo ,Сt_тыс_долл_США)=
(select sum(t.g31b), sum(t.g46) from
country c, temp2 t where t.g15_17=any(select cntkod from countrygroupdef where
groupkod=14) and t.g15_17=c.id and char(t.g33a,4)='8703' group by c.small_name);

sqlcode : -811

sqlstate : 21000
Результат скалярной полной выборки, оператора SELECT INTO или оператора VALUES INTO - больше одной строки таблицы.
...
Рейтинг: 0 / 0
update insert
    #34271408
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
update res1 r
set(Количествo ,Сt_тыс_долл_США)=
(
 select sum(t.g31b), sum(t.g46) 
 from country c, temp2 t 
 where t.g15_17=any
 (
 select cntkod 
 from countrygroupdef 
 where groupkod= 14 
 ) 
 and t.g15_17=c.id 
 and char(t.g33a, 4 )='8703' 
 and c.small_name=r.small_name
)
where exists 
(
 select sum(t.g31b), sum(t.g46) 
 from country c, temp2 t 
 where t.g15_17=any
 (
 select cntkod 
 from countrygroupdef 
 where groupkod= 14 
 ) 
 and t.g15_17=c.id 
 and char(t.g33a, 4 )='8703' 
 and c.small_name=r.small_name
);
...
Рейтинг: 0 / 0
update insert
    #34273912
Тимур Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо !
а может быть можно попробовать что-то вроде такого:

update res1 set(Количествo ,Сt_тыс_долл_США)=
(select sum(t.g31b), sum(t.g46) from
country c, temp2 t where t.g15_17=any
(select cntkod from countrygroupdef where
groupkod=14) and t.g15_17=c.id and char(t.g33a,4)='8703'
group by c.small_name fetch
first 1 row only where c.small_name=r.small_name);
...
Рейтинг: 0 / 0
update insert
    #34274908
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таком виде - точно не надо.
А чем вам 1-й вариант не понравился?
...
Рейтинг: 0 / 0
update insert
    #34277064
Тимур Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понятно зачем здесь использовать where exists
и еще такой вопрос обновление идет всего поля (Количествo ,Сt_тыс_долл_США)
а как можно сделать чтобы обновлялись только определенные значения в этих полях (у меня это все в цикле работает)
...
Рейтинг: 0 / 0
update insert
    #34277609
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тимур БНе совсем понятно зачем здесь использовать where exists Вы написали, что сабселект возвращает 3 строки (т.е. для 3-х разных small_name).
Если в таблице res1 есть отличные small_name от тех 3-х, которые вернет сабселект, то такой update без exists присвоит полям (Наимен_страны ,Количество ,Ст_тыс_долл_США) для этих small_name значения NULL.
Если это то, что вам надо, то exists можно не использовать.
Тимур Би еще такой вопрос обновление идет всего поля (Количествo ,Сt_тыс_долл_США)
а как можно сделать чтобы обновлялись только определенные значения в этих полях (у меня это все в цикле работает)Вопрос не понял.
...
Рейтинг: 0 / 0
update insert
    #34280581
Тимур Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, я кое-что понял, в моем случае update не подойдет :((. Придется делать join-ом, либо каким-то др способом.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / update insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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