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

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

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

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

у меня есть таблица 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
24.05.2002, 08:15:29
    #32031209
fima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вставить хранимую процедуру в sql-запрос?
А почему бы не написать новую процедуру? Вы не могли бы поточнее сказать, что нужно сделать с данными столбцов field1 и field1, сложить или умножить или выбрать что то еще, а потом получить сумму?
...
Рейтинг: 0 / 0
24.05.2002, 08:55:16
    #32031226
-jer-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вставить хранимую процедуру в sql-запрос?
это не важно... (долго рассказывать, но это не линейная функция)

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

Что-то типа

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
24.05.2002, 10:41:30
    #32031250
noname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вставить хранимую процедуру в sql-запрос?
А что мешает сделать
SELECT SUM(field1+field2) FROM table1 ???
...
Рейтинг: 0 / 0
24.05.2002, 14:11:45
    #32031291
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вставить хранимую процедуру в sql-запрос?
В виде, приведенном в исходном вопросе, вызываются не хранимые процедуры, а функции. Соответственно, если у вас SQL2000, можно попробовать воспользоваться UDF (если алгоритм вашей хранимой процедуры не нарушает требований для UDF). Либо воспользоваться курсором и временной таблицей.
...
Рейтинг: 0 / 0
27.05.2002, 06:04:45
    #32031373
-jer-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вставить хранимую процедуру в sql-запрос?
2 Garya:
он у меня не хочет вызывать хранимую процедуру, говорит что не находит ее. может она должна быть определена как функция, а не как хранимая процедура?
...
Рейтинг: 0 / 0
28.05.2002, 18:18:55
    #32031571
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вставить хранимую процедуру в sql-запрос?
См. BOL Create function
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как вставить хранимую процедуру в sql-запрос? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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