powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как вставить хранимую процедуру в sql-запрос?
10 сообщений из 10, страница 1 из 1
как вставить хранимую процедуру в sql-запрос?
    #32031181
-jer-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имеется хранимая процедура sp_culc(var1,var2)

как применить эту хранимку ко всем записям выборки и посчитать их сумму? желательно в одном запросе.

что-нибудь типа SELECT SUM(EXEC sp_culc(field1,field2)) FROM table1

ругается на exec. как это можно реализовать?
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031187
Andreyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу предложить один из вариантов:
insert into временнаятаблица
код процедуры....
select sum(поле временной табл.),sum(поле временной табл.)... from временная табл.
drop временная табл.
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031193
-jer-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, я не это имел в виду.

у меня есть таблица table1 с полями field1 и field2.
есть хранимая процедура sp_culc(var1,var2), которая в зависимости от двух входных параметров (в моем случае этими параметрами являются поля field1 и field2 таблицы table1) выдает какое-то значение.

мне нужно посчитать сумму этих значений для всех записей выборки.

т.е. если имеем слудущую таблицу

field1 field2
--------------
1 2
3 4
5 6

то мне нужен результат
res = sp_culc(1,2) + sp_culc(3,4) + sp_culc(4,6)
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031209
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не написать новую процедуру? Вы не могли бы поточнее сказать, что нужно сделать с данными столбцов field1 и field1, сложить или умножить или выбрать что то еще, а потом получить сумму?
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031226
-jer-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это не важно... (долго рассказывать, но это не линейная функция)

если вы хотите предложить сначала сложить все столбцы, а потом вызвать один раз процедуру, то ничего не получится. т.к. sp_culc(1,2)+sp_culc(3,4) <> sp_culc(1+3,2+4)
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031249
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего сделать еще одну процедуру, ктр
пробегает по всей выборке курсором /я предпочитаю
цикл/

Что-то типа

create table #stack(ii int,i1 int,i2 int) -- ii - уникальный
declare @summa money
declare @rr money
select @summa=0
insert into #stack(ii,i1,i2) select ...
declare @ii integer
declare @i1 integer
declare @i2 integer
while exist(select * from #stack) begin
select @ii=min(ii) from #stack
select @i1=i1,@i2=i2 from #stack where ii=@ii
exec sp_calc @i1,@i2,@rr OUTPUT
select @summa=@summa+@rr
delete from #stack where ii=@ii
end
drop table #stack
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031250
noname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что мешает сделать
SELECT SUM(field1+field2) FROM table1 ???
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031291
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Garya Привилегированный пользователь
Участник
В виде, приведенном в исходном вопросе, вызываются не хранимые процедуры, а функции. Соответственно, если у вас SQL2000, можно попробовать воспользоваться UDF (если алгоритм вашей хранимой процедуры не нарушает требований для UDF). Либо воспользоваться курсором и временной таблицей.
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031373
-jer-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Garya:
он у меня не хочет вызывать хранимую процедуру, говорит что не находит ее. может она должна быть определена как функция, а не как хранимая процедура?
...
Рейтинг: 0 / 0
как вставить хранимую процедуру в sql-запрос?
    #32031571
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Garya Привилегированный пользователь
Участник
См. BOL Create function
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как вставить хранимую процедуру в sql-запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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