SQL / mysql - как отобразить два столбца с разными значениями из 1 таблицы - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь сделать запрос на утверждение документов, где в результате отображаются имя и подпись с датой.Как я могу получить дату одобрения документа двумя людьми?

Select Uname 
case when stepcode=1 then 'approver1' end as 'name of person'
case when stepcode=1 then 'approver1' end as ' date of signed noted'
case when stepcode=2 then 'approver2' end as 'date of signed approved'
from table

Я пробовал это, но обнаружился только один результат.Отображаются только имя, подпись и дата первого утверждения.

1 Ответ

0 голосов
/ 05 марта 2019

Мы можем только ответить на это, сделав несколько предположений:

  1. поле stepcode обозначает, на какой стадии процесса подписания находится запись
  2. значение 1 означает noted и значение 2 означает approved.Значение 0 означает, что ничего еще не произошло
  3. утверждающий1 и утверждающий 2 равны NULL, если действие еще не выполнено

Если все вышеприведенное верно, тоне должно быть никаких требований иметь оператор CASE для полей ... просто включение полей в оператор SELECT приведет к получению значений, если они были завершены.

Здесь может потребоваться некоторая проверка данныххотя, если вы не получаете ожидаемых результатов.Выполнение некоторых приблизительных подсчетов для каждого из шагов и их значений в полях утверждающего помогло бы убедиться, что ваш код работает.Следующее должно дать вам кое-что для работы:

 SELECT
  stepcode
  COUNT(TableID) AS NumberAtStep
 FROM table
 GROUP BY stepcode

Используя эти значения, вы можете затем выполнить свой оператор без операторов CASE и запустить ручной подсчет, чтобы убедиться, что вы видите нужное количество записей с помощьюсоответствующие заполненные столбцы для каждого шага.

Тем не менее, потребуется дополнительная информация, чтобы углубиться в вашу проблему

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