0

У меня есть процедура, которую я хочу, чтобы она преобразует ее в функцию, чтобы я мог использовать ее в where where. Проблема в том, что моя процедура возвращает несколько столбцов до 3. Также на основе входных параметров строка может варьироваться от 1 до 3. Для ввода типа данных «дата» требуется две даты (дата начала и дата окончания).Как сделать функцию?

я могу опубликовать результаты моего procedure-

Выход-1

Type    Start date    End date        
    1     20150607    20150701 

Выход-2

Type    Start date    End date        
    1     20150603    20150607 
    2     2015071    2015083 
    1     20150817    20150820 

Выход-3

Type    Start date    End date        
    1     20150607    20150630 
    3     201507    201509 
    1     20151001    20151008 

я отправил 3 вывода моей процедуры е, но они похожи только на это.

Теперь в предложении where я хочу использовать эту дату начала и дату окончания каждой строки с ее типом.

Тип не что иное, как тип дня ли сво информация уровня день или уровня недели информация или уровень месяц Информация

1 is day level info 
2 is week level info 
3 is month level info 

Как можно использовать эту дату начала и дату окончания в ИНЕКЕ, как даты между для каждой строки дат, возвращаемых процедурой?

Мне нужна помощь по этому вопросу, так как существуют различные функции и которые подходят для моего требования. Какие изменения я должен сделать, чтобы сделать функцию из процедуры?

+1

взглянуть на таблицу функций: https://technet.microsoft.com/en- us/library/ms191165 (v = sql.105) .aspx http://blog.sqlauthority.com/2011/08/26/sql-server-tips-from-the-sql-joes-2-pros-development- серия столов многозначных-функции-дневной 26-оф-35 / – ps2goat

ответ

0

Вы можете создать функцию, чтобы вернуть таблицу со всеми столбцами вам нужно, например:

Функция

CREATE FUNCTION ufn_RetImages (@date VARCHAR (8)) ВОЗВРАТ ТАБЛИЦА AS RETURN ( выберите ImageBildID как ImageBildID, конвертировать (VARCHAR, DateCaptured_SD, 112) в качестве dateT от dbo.ImageBild_T , где convert (varchar, DateCaptured_SD, 112) = @Date
);

и после вызова функции с использованием параметров

Необходимые данные

выберите * из dbo.ufn_RetImages («20130612»)

Смежные вопросы