Мы можем только ответить на это, сделав несколько предположений:
- поле
stepcode
обозначает, на какой стадии процесса подписания находится запись - значение 1 означает
noted
и значение 2 означает approved
.Значение 0 означает, что ничего еще не произошло - утверждающий1 и утверждающий 2 равны
NULL
, если действие еще не выполнено
Если все вышеприведенное верно, тоне должно быть никаких требований иметь оператор CASE
для полей ... просто включение полей в оператор SELECT приведет к получению значений, если они были завершены.
Здесь может потребоваться некоторая проверка данныххотя, если вы не получаете ожидаемых результатов.Выполнение некоторых приблизительных подсчетов для каждого из шагов и их значений в полях утверждающего помогло бы убедиться, что ваш код работает.Следующее должно дать вам кое-что для работы:
SELECT
stepcode
COUNT(TableID) AS NumberAtStep
FROM table
GROUP BY stepcode
Используя эти значения, вы можете затем выполнить свой оператор без операторов CASE и запустить ручной подсчет, чтобы убедиться, что вы видите нужное количество записей с помощьюсоответствующие заполненные столбцы для каждого шага.
Тем не менее, потребуется дополнительная информация, чтобы углубиться в вашу проблему