Я пытаюсь создать некоторый sql, который используется для подсчета окончательных оценок -> думаю, что дети в школе и их оценки на конец года.
Я собирался иметь около 5 или около того скалярных UDF, которые принимают несколько простых значений (например, текущий счет, субъектив и т. Д.) И затем выплевывают десятичное значение.
например.
CREATE FUNCTION [dbo].[GetRatingModifier]
(
@ExamScore DECIMAL(6, 2),
@Project1Score DECIMAL(6, 2),
@Project1Score DECIMAL(6, 2),
@Project1Score DECIMAL(6, 2),
@SubjectTypeId TINYINT
)
RETURNS DECIMAL(8,5)
AS
BEGIN
DECLARE @Score DECIMAL(8,5)
SELECT @Score = (CASE @Project1Score
WHEN 1 THEN 10
WHEN 2 THEN 12.4
....) +
(CASE blah.. u get the drift)..
RETURN @Score
END
В логике есть только математика. Нет выбора ххх из таблицы гггг и т. Д.
Итак, это нормально делать с производительностью?