SQL2008. У меня есть значения с плавающей точкой в таблице, которые должны быть переопределены следующим набором правил. Правила в другой таблице.
Однако правила являются иерархическими, т. Е. - Мне нужно применять самые строгие из всех подходящих правил для каждой строки в основной таблице.
Вот пример ... Таблица правил (B и C могут быть NULLS)
A B C Value
1 2 3 100
1 2 NULL 80
1 NULL NULL 60
Main Table
A B C Value OverridenValue
1 2 3 1 100
1 2 2 2 80
1 3 1 3 60
3 1 3 4 4 <- no override as no rule found
NULL NULL NULL 5 5 <- no override as no rule found
Мне нужна скалярная функция, т.е. fnGetOverridenValue (@A int, @B int, @C int) Возвращает float