SQL / mysql-如何显示1个表中具有不同值的两列

时间:2019-03-04 03:05:32

标签: mysql sql

我正在尝试查询文档的批准情况,结果显示带有日期的名称和签名。如何获得两个人批准文件的日期?

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 :(得分:0)

我们只能通过做一些假设来回答这个问题:

  1. 字段stepcode表示记录处于退出过程的哪个阶段
  2. 值1表示noted,值2表示approved。值为0表示什么都没发生
  3. 如果尚未执行操作,则
  4. 批准人1和批准人2为NULL

如果以上所有条件都成立,那么就不必要求对字段使用CASE语句...只要在SELECT语句中包含这些字段,就可以使这些值完成

此处可能需要对数据进行一些验证,但是如果您没有获得预期的结果。对每个步骤以及它们在批准者字段中的值进行一些粗略计数,将有助于确保您的代码正常运行。以下内容将为您提供一些帮助:

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

使用这些计数,然后可以运行不带CASE语句的语句,并运行手动计数以确保您看到的正确数量的记录以及每个步骤的相关填充列。

需要进一步的信息来进一步研究您的问题