Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 14.03.2013
Сообщений: 150

Написать функцию, которая бы пробегала по всем записям одной таблицы и заносила бы их id в запрос на место Х

23.04.2015, 13:21. Показов 1006. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Помогите написать функцию, которая бы пробегала по всем записям одной таблицы и заносила бы их id в запрос на место Х, и по записям второй таблицы и заносила бы их id на место Y:
SQL
1
SELECT SUM(vvalue) FROM t_units WHERE ntypeid=Y AND vinout='OUTGOING' AND nnumberid=Х
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.04.2015, 13:21
Ответы с готовыми решениями:

Реализовать функцию Split, которая бы мне заносила каждое слово в отдельный элемент массива
Хотел реализовать функцию Split, которая бы мне заносила каждое слово в отдельный элемент массива. создал функцию void split(char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
23.04.2015, 13:46
SQL
1
2
3
4
WHERE fld1 IN
  (SELECT id
   FROM tab2
  )
PS
А причем тут функция? И насчет "пробегала по всем записям" применительно к SQL обычно не говорят. Запрос отсылается на сервер, а уж как там действует СУБД - ее личное дело. Главное получить желаемый результат.
1
3 / 3 / 2
Регистрация: 14.03.2013
Сообщений: 150
23.04.2015, 15:56  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
И насчет "пробегала по всем записям" применительно к SQL обычно не говорят
а, ок)
тогда ведь nnumberid будет больше одной строки получать... GROUP BY надо?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
23.04.2015, 16:14
Цитата Сообщение от yozzi Посмотреть сообщение
будет больше одной строки получать
Так для этого и стоит не =, а IN, чтобы не бояться "больше одной строки".
Допустим, мы выбрали SELECT-ом значения 1, 5, 27. Тогда запись выше будет эквивалентна такой
SQL
1
WHERE fld1 IN (1, 5, 27)
0
3 / 3 / 2
Регистрация: 14.03.2013
Сообщений: 150
24.04.2015, 12:51  [ТС]
Спасибо.

Добавлено через 19 часов 38 минут
Всеж функция нужна тоже.

Объединить эти три запроса в одной функции, которая бы обновляла запись в поле nbalance:
SQL
1
2
3
4
5
SELECT n.vnumber, t.vname, t.noutfavoritecost, noutsystemcost, noutothercost, noutcityphonecost, noutinternationalcost, nsmscost, nmmscost, nwapcost FROM t_numbers n   
FULL JOIN t_contract c 
FULL JOIN t_tariff t ON c.ntariffid=t.id
ON c.id=n.ncontractid
GROUP BY n.vnumber, t.noutfavoritecost, t.vname, noutsystemcost, noutothercost, noutcityphonecost, noutinternationalcost, nsmscost, nmmscost, nwapcost
SQL
1
2
3
4
5
6
SELECT n.vnumber, t.vname, SUM(c.vvalue) FROM t_numbers n   
FULL JOIN t_units c 
FULL JOIN t_unittype t ON c.ntypeid=t.id
ON c.nnumberid=n.id
WHERE vinout='OUTGOING'
GROUP BY n.vnumber, t.vname
SQL
1
2
3
4
5
SELECT n.vnumber, t.vname, SUM(c.nvalue) FROM t_numbers n    
FULL JOIN t_cashactions c 
FULL JOIN t_cashactiontype t ON c.ncashactiontypeid=t.id
ON c.nnumberid=n.id
GROUP BY n.vnumber, t.vname
обновлять данные так:
SQL
1
UPDATE t_numbers SET nbalance =  (Х*Y+Z) WHERE id=res.nnumberid;
, где Х - результат первого запроса, Y - результат sum(c.nvalue) второго запроса, Z - результат sum(c.nvalue) третьего запроса, rec - RECORD

Добавлено через 5 минут
т.е nbalance = (noutfavoritecost*Y + noutsystemcost*Y + noutothercost*Y + ... + nwapcost*Y) + Z
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru