Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как выполнить join с хранимой процедурой в запросе  [new]
Garfish
Member

Откуда: г. Кострома
Сообщений: 274
появилась потребность сделать в запросе с объединением таблицы с хранимой процедурой.
в хранимую процедуру передаются параметры которые также надо учесть

@ID int

select T1.ID, T1.name, sales.volume
from (exec Campagns_select @reg= @ID) as T1
inner join sales on (T1.ID = sales.FieldID)

как это сделать?
16 ноя 12, 10:29    [13482117]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Garfish
появилась потребность сделать в запросе с объединением таблицы с хранимой процедурой.
в хранимую процедуру передаются параметры которые также надо учесть

@ID int

select T1.ID, T1.name, sales.volume
from (exec Campagns_select @reg= @ID) as T1
inner join sales on (T1.ID = sales.FieldID)

как это сделать?
Никак. Почти.
ESP в UDF и CLR UDF, конечно можно, но не советую.
Лучше, может быть, выгрузить резалтсет процедуры в таблицу,
и в запрсе джойниться с этой таблицей.
Ещё лучше переделать процедуру в функцию.
И совсем хорошо, если это будет table-valued inline UDF
16 ноя 12, 10:36    [13482189]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
Garfish
Member

Откуда: г. Кострома
Сообщений: 274
iap,

как то с трудом верится что в MSQ SQL это практически не реализуемо, в Firebird подобная конструкция в норме вещей
16 ноя 12, 10:45    [13482258]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Garfish
iap,

как то с трудом верится что в MSQ SQL это практически не реализуемо, в Firebird подобная конструкция в норме вещей
Я Вам перечислил почти все возможности.
Что толку обсуждать какие-то другие СУБД? Как это поможет?
16 ноя 12, 10:47    [13482271]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
вообще никак не реализуемо
Guest
Garfish,

openquery
16 ноя 12, 10:53    [13482315]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
вообще никак не реализуемо
Garfish,

openquery
О! А я забыл. Однако, я ж говрил "... почти все возможности ..."
16 ноя 12, 11:00    [13482372]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31977
вообще никак не реализуемо
Garfish,

openquery
Вещь конечно хорошая, но использовать можно только в динамике - в openquery ведь можно передавать запрос только в виде константы...
16 ноя 12, 11:23    [13482538]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
aleks2
Guest
Garfish
iap,

как то с трудом верится что в MSQ SQL это практически не реализуемо, в Firebird подобная конструкция в норме вещей


Чо, неужто можно джойнить и с процедурами, возвращающими два и более рекордсета?
16 ноя 12, 11:54    [13482758]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
посторонни В
Guest
Может, попробовать cross apply ?
16 ноя 12, 13:18    [13483413]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
посторонни В
Может, попробовать cross apply ?
Зачем?
16 ноя 12, 13:27    [13483481]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
cross apply
Guest
iap
посторонни В
Может, попробовать cross apply ?
ЗачемКАК?
16 ноя 12, 13:37    [13483571]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
cross apply
iap
пропущено...
ЗачемКАК?
Может, кому-то хочется полюбоваться на сообщение о недопустимом синтаксисе.
Для такого ответа годится и вопрос "зачем?".
16 ноя 12, 14:14    [13484002]     Ответить | Цитировать Сообщить модератору
 Re: как выполнить join с хранимой процедурой в запросе  [new]
Garfish
Member

Откуда: г. Кострома
Сообщений: 274
сделал через exec (@sql)
16 ноя 12, 17:24    [13485756]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить