Я делаю представление базы данных в MS SQL Server 2008 R2. Один из выходных столбцов с именем «Status» извлекает информацию об объекте из нескольких разных таблиц, создавая состояние строки, которое сообщается пользователю.
Поэтому я создаю функцию, которая принимает идентификатор сущности в качестве единственного параметра и возвращает статус nvarchar (MAX).
Первая проверка заключается в том, был ли объект утвержден. Это хранится в базе данных как имя пользователя, который его утвердил. Если он не утвержден, значение равно NULL.
Итак, псевдокод для того, что я хочу сделать, это:
if entity is NOT approved
return "Pending"
else
begin
max = select MAX(value) from EntityStatus // several statuses may exist
status = select name from EntityStatus WHERE value = max
return status
end
Моя непосредственная проблема: как выбрать «одобренный» логический параметр?
Я очень новичок в программировании на T-SQL (это, вероятно, показывает), поэтому не стесняйтесь предлагать другие способы улучшения своей функции.