Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вложенные хранимые процедуры ;) / 4 сообщений из 4, страница 1 из 1
21.08.2002, 01:50:32
    #32044749
Vitaliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные хранимые процедуры ;)
Привет всем!
софт: SQL Server 2000, Win2k Server
Очень хочу запустить процедуру, которая использует в качестве исходных данных еще две процедуры с параметрами.

Процедура 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE PROC ResIssued (@Reseller nvarchar( 15 ), @DateEnd smalldatetime )
AS 
SELECT    g.ItemNumber, sum(g.Quantity) as Quantity1
FROM         tblIssue i INNER JOIN tblIssueGoods g ON i.InvoiceNumber=g.InvoiceNumber

WHERE     i.reseller = @reseller AND 
	     g.GoodsDefect =  0  AND 
                  g.DiscountPrice=  0  AND	     
i.Client is null AND
i.InvoiceDate>= @DateEnd
GROUP BY g.ItemNumber

ORDER BY g.ItemNumber
GO


Процедура 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE PROC ResReport (@Reseller nvarchar( 15 ), @DateEnd smalldatetime )
AS 
SELECT    g.ItemNumber, sum(g.Quantity) as Quantity1
FROM         tblReports i INNER JOIN tblReportsGoods g ON i.InvoiceNumber=g.InvoiceNumber

WHERE     i.reseller = @reseller AND 
	     g.DefectGoods =  0  AND 
i.Client is null AND
i.InvoiceDate>= @DateEnd
GROUP BY g.ItemNumber

ORDER BY g.ItemNumber
GO


А вот эта процедура запускаться не хочет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROC ResResults
 (@Reseller nvarchar( 15 ), @DateEnd smalldatetime )
AS 
SELECT    g.ItemNumber, g.Quantity, i.Quantity
FROM         ResIssue (@Reseller,@dateEnd) i INNER JOIN ResReport (@Reseller,@dateEnd) g ON i.ItemNumber=g.ItemNumber

ORDER BY g.ItemNumber
GO



помогите плз, нигде не могу ничего найти...
...
Рейтинг: 0 / 0
21.08.2002, 02:07:20
    #32044751
Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные хранимые процедуры ;)
надо сделать следующие шаги:
1) прочитать BOL на тему SELECT
2) наверное или вместо процедуры использовать UDF или прочитать как пользоваться INSERT/EXEC сочетанием

-- Слон
...
Рейтинг: 0 / 0
21.08.2002, 08:44:01
    #32044777
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные хранимые процедуры ;)
Процедеры можно только запускать с помощью EXEC.
В твоём случае подойдут функции возвращ. таблицу.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
CREATE FUNCTION ResIssued (@Reseller nvarchar( 15 ), @DateEnd smalldatetime )
RETURNS TABLE
AS 
RETURN(SELECT    g.ItemNumber, sum(g.Quantity) as Quantity1
FROM         tblIssue i INNER JOIN tblIssueGoods g ON i.InvoiceNumber=g.InvoiceNumber
WHERE     i.reseller = @reseller AND 
	     g.GoodsDefect =  0  AND 
                  g.DiscountPrice=  0  AND	     
i.Client is null AND
i.InvoiceDate>= @DateEnd
GROUP BY g.ItemNumber
ORDER BY g.ItemNumber)
GO

CREATE FUNCTION ResReport (@Reseller nvarchar( 15 ), @DateEnd smalldatetime )
RETURNS TABLE
AS 
RETURN(SELECT    g.ItemNumber, sum(g.Quantity) as Quantity1
FROM         tblReports i INNER JOIN tblReportsGoods g ON i.InvoiceNumber=g.InvoiceNumber
WHERE     i.reseller = @reseller AND 
	     g.DefectGoods =  0  AND 
i.Client is null AND
i.InvoiceDate>= @DateEnd
GROUP BY g.ItemNumber
ORDER BY g.ItemNumber)
GO


Тогда ResResults запустится без проблем.
Но крайне не советую, лучше напиши нермальный SELECT.
...
Рейтинг: 0 / 0
22.08.2002, 03:16:50
    #32045061
Vitaliy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные хранимые процедуры ;)
>Akuz
большое пасиба. Процедуры оформил функциями, работает без проблем. У меня просто в конечную процедуру будут входить еще 8 функций, так что такой длинный селект писать влом.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вложенные хранимые процедуры ;) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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