SQL - создание пользовательской функции в SSMS - PullRequest
0 голосов
/ 05 октября 2018

Мне нужна помощь в написании запроса - мне нужно создать функцию, в которой, если я введу кодовый номер, он будет возвращать информацию PACEESRD за определенный год.У меня есть таблица для 2018 года и таблица для 2019 года с такими же именами столбцов.Вот кусок стола ...

+--------+---------------+----------+-----+-----+--------+
| Code   | Description   | PACEESRD | V22 | V23 |   Rx   |
+--------+---------------+----------+-----+-----+--------+
| A0103  | pneumonia     |    113   | 113 | 113 |   Null |
| A0104  | sepsis        |    40    | 40  |  40 |   Null |
| A0105  | plague        |    40    | 40  |  40 |   Yes  | 
| A021   | arthritis     |    38    | 38  |  38 |   No   |
| A207   | colitis       |   41     | 41  |  41 |  Null  |
+--------+---------------+----------+-----+-----+--------+

1 Ответ

0 голосов
/ 05 октября 2018

Вот пользовательская функция, которая принимает 2 параметра: год и код.Затем функция возвращает значение PACEESRD из таблицы, соответствующей параметру Year.

CREATE FUNCTION GetPACEESRD
(
    @Year int,
    @Code nvarchar(50)
)
RETURNS int
AS
BEGIN
    DECLARE @ResultVar int;
    IF (@Year = 2018)
        SELECT @ResultVar = PACEESRD FROM Table2018 WHERE Code = @Code;
    ELSE
    IF (@Year = 2019)
        SELECT @ResultVar = PACEESRD FROM Table2019 WHERE Code = @Code;
    RETURN @ResultVar;
END

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

select dbo.GetPACEESRD(2018, 'A0103');

Пожалуйста, измените типы данных так, чтобы онисопоставьте типы данных ваших таблиц.Функция предполагает, что значения кода уникальны в каждой таблице.Если они не уникальны, функция завершится ошибкой и должна быть изменена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...