Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Select + stored procedure / 16 сообщений из 16, страница 1 из 1
18.04.2002, 09:56
    #32028186
galaxy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Народ, дайте совет.
Есть здача тарификации данных с АТС. Есть даблица междугородних кодов и таблица междугородних звонков. звонок - это последовательность цифр от 9 до 20, от сюда надо выделить код города. В Accesse я это сделал. В SQL встала проблема, как в selecte вызвать хранимую процедуру с параметром. т.е. Я selectом выбираю номера - select nomer from table.
Есть процедура, выделяющая код из номера - ret_kod(nomer). Как теперь вставить одно в другое. Т.е. я хочу что бы select последовательно перебирал все номера , каждый выбранный номер обрабатывался бы процедурой ret_kod, процедура возвращает код, который потом должен записаться в таблицу и так со всеми номерами.
Помогите. Может кто-то делал что-то подобное???
...
Рейтинг: 0 / 0
18.04.2002, 10:31
    #32028190
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
В 2000-ном используйте функции.
В 7-м - никак.
...
Рейтинг: 0 / 0
18.04.2002, 10:39
    #32028192
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Есть даблица междугородних кодов и таблица междугородних звонков. звонок - это последовательность цифр от 9 до 20, от сюда надо выделить код города

А что через JOIN никак нельзя связать эти две таблицы ?
...
Рейтинг: 0 / 0
18.04.2002, 10:43
    #32028193
galaxy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Таблици не связать, т.к. в номере нет никаких разделителей кода от номера. Поэтому я хочу искать все вхождения кодов в номер, а потом выбираю самый длинный код - он и будет правильным
...
Рейтинг: 0 / 0
18.04.2002, 11:23
    #32028202
galaxy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Ну так, все-таки, как в селекте использовать процедуру с параметрами, формат?
...
Рейтинг: 0 / 0
18.04.2002, 12:59
    #32028217
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Повторяю.
В 7-м - никак.
...
Рейтинг: 0 / 0
18.04.2002, 13:04
    #32028218
galaxy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Понял. У меня 2000.
Написал я вот такую функцию:
CREATE FUNCTION [dbo].[fun_ret_kod] (@m_number varchar(50))
RETURNS varchar (50)
AS
BEGIN
declare @kod varchar(50)
return (select top 1 kod from all_kod where (convert(varchar(50),@m_number) like kod +'%') ORDER BY Len(all_kod.kod) desc)
END

Что в ней неправильно?
Затем пытаюсь ее вызвать из процедуры типа:

CREATE PROCEDURE [dbo].[test1]
AS
select * from dbo.fun_ret_kod(812)
GO

exec dbo.test1
Выдает : Invalid object name 'dbo.fun_ret_kod'.
...
Рейтинг: 0 / 0
19.04.2002, 04:16
    #32028261
Andreyka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Попробую предложить способ:
-создаешь временную табл. и insert into exec stored procedure
А потом со временной табл. делай, что хочешь.
...
Рейтинг: 0 / 0
19.04.2002, 04:17
    #32028262
Andreyka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Попробую предложить способ:
-создаешь временную табл. и insert... into #tmptable exec stored procedure
А потом со временной табл. делай, что хочешь.
...
Рейтинг: 0 / 0
19.04.2002, 04:59
    #32028267
Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Проще всего написать курсор и вызывать в нем нужную sp с параметрами....
...
Рейтинг: 0 / 0
19.04.2002, 06:08
    #32028271
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
2 galaxy
Есть у меня сомнения что такая функция создастся. Бывают функции скалярные и бывают табличные. Вы делаете нечто среднее.
Почитайте внимательно как писать функции, в конечном итоге это будет лучше чем sp и курсоры. По идее там ничего сложного нет.
...
Рейтинг: 0 / 0
19.04.2002, 07:22
    #32028290
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Хм,

а не проще ли использовать данный запрос

select top 1 kod from all_kod where (convert(varchar(50), maintable.called_number ) like kod +'%') ORDER BY Len(all_kod.kod) desc

как столбец в основном запросе ?
...
Рейтинг: 0 / 0
19.04.2002, 09:26
    #32028315
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
2galaxy
Ошибка в вызове. Попробуйте:

CREATE PROCEDURE [dbo].[test1]
AS
select dbo.fun_ret_kod(id), *
from sysobjects
GO
...
Рейтинг: 0 / 0
19.04.2002, 10:14
    #32028321
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
2galaxy
Ошибка в вызове. Попробуйте:

CREATE PROCEDURE [dbo].[test1]
AS
select dbo.fun_ret_kod(id), *
from sysobjects
GO
...
Рейтинг: 0 / 0
19.04.2002, 10:27
    #32028322
galaxy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
Спасибо за советы. Я написал функцию и ее через запрос, все работает и очень просто и коротко( в отличии от предыдущего написания в Accesse) В Accesse тарификация за месяц занимала минут 25-30, в sql - 25-30секунд, просто чудо какоето.

Еще один вопрос по ходу, как обрезать знаки посли запятой, есть ли стандартные способы, т.е.
есть цифра 99,23987654322 хочу что-бы было 99,23 (или может быть 99,24)???
...
Рейтинг: 0 / 0
19.04.2002, 10:37
    #32028324
qwerty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select + stored procedure
ROUND ( numeric_expression , length [ , function ] )
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Select + stored procedure / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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