Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2014, 12:03   #1
Arsenal2
Пользователь
 
Регистрация: 01.10.2014
Сообщений: 11
По умолчанию Из запроса сделать SQL процедуру

SELECT temp.ID_DOGOVOR, temp.up, temp.down FROM
(SELECT
td.ID_DOGOVOR,
SUM(td.M_ZAIM_UP) AS up,
SUM(td.M_ZAIM_DOWN) AS down
FROM tDogAcc0 td (nolock)
GROUP BY td.ID_DOGOVOR) AS temp
JOIN Dogovor d (nolock) ON d.ID=temp.ID_DOGOVOR
WHERE d.D_DATEINPUT>='20140101' AND d.ID_STATUS=2 AND temp.up>temp.down


помогите пожалуйста из запросса сделать процедуру
Arsenal2 вне форума Ответить с цитированием
Старый 01.10.2014, 12:18   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://msdn.microsoft.com/ru-ru/library/ms187926.aspx
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.10.2014, 12:31   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
из запросса сделать процедуру
А СУБД какая? Или хотябы диалект какой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2014, 12:34   #4
Arsenal2
Пользователь
 
Регистрация: 01.10.2014
Сообщений: 11
По умолчанию

Microsoft SQL Server
Arsenal2 вне форума Ответить с цитированием
Старый 01.10.2014, 12:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:

CREATE FUNCTION ВерниМнеТаблицу(@date1 varchar(max),@stat int)
RETURNS TABLE
AS
RETURN
(
SELECT temp.ID_DOGOVOR, temp.up, temp.down FROM
(SELECT
td.ID_DOGOVOR,
SUM(td.M_ZAIM_UP) AS up,
SUM(td.M_ZAIM_DOWN) AS down
FROM tDogAcc0 td (nolock)
GROUP BY td.ID_DOGOVOR) AS temp
JOIN Dogovor d (nolock) ON d.ID=temp.ID_DOGOVOR
WHERE d.D_DATEINPUT>=@date1 AND d.ID_STATUS=@stat int AND temp.up>temp.down 
)
GO
Применение:
Код:
select * from ВерниМнеТаблицу('20140101',2)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2014, 13:24   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если не функцию, а процедуру то так
Код:
CREATE PROCEDURE ВерниМнеТаблицу @date1 varchar(max),@stat int 
AS
BEGIN
SELECT
td.ID_DOGOVOR,
SUM(td.M_ZAIM_UP) AS up,
SUM(td.M_ZAIM_DOWN) AS down
FROM tDogAcc0 td (nolock)
GROUP BY td.ID_DOGOVOR) AS temp
JOIN Dogovor d (nolock) ON d.ID=temp.ID_DOGOVOR
WHERE d.D_DATEINPUT>=@date1 AND d.ID_STATUS=@stat int AND temp.up>temp.down
END
GO
Код:
EXEC ВерниМнеТаблицу '20140101',2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать процедуру? (SQL) Davis Помощь студентам 0 28.05.2013 15:10
сделать через процедуру lilywka Помощь студентам 4 06.11.2012 13:10
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15