mysql - 借助 sql 更新具有不同 refno 的 new_status 列

标签 mysql sql

   datetime                 refno      status      final_status
----------------------------------------------------------------
   2016-12-01 10:00:00      123456     hold
   2016-12-02 11:10:00      123456     delivered 
   2016-12-01 10:00:00      654321     hold
   2016-12-02 12:20:00      654321     delivered 
   2016-12-01 10:00:00      111111     hold
   2016-12-01 01:00:00      222222     hold

如果 Refno 已交付,我想区分 refno,然后 new_status 列将更新为已交付,否则更新为 hold

喜欢这种类型:-

输出:-

   datetime                 refno      status      final_status
  ----------------------------------------------------------------
   2016-12-01 10:00:00      123456     hold        delivered 
   2016-12-01 10:00:00      654321     hold        delivered 
   2016-12-01 10:00:00      111111     hold        hold
   2016-12-01 01:00:00      222222     hold        hold

最佳答案

如果下面的 status 列中只有 holddelivered 值,则对您有用。

select
  min(datetime),
  refno,
  max(status) status,
  min(status) final_status
from
  my_table
group by
  refno;

关于mysql - 借助 sql 更新具有不同 refno 的 new_status 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41289161/

相关文章:

mysql - 按顺序排除某些值并重复

mysql - 使用 Long 和默认 null Play Framework 异常数据库字段

php - Joomla PHP MySQL 查询使用 MySQL IF 函数

mysql - MySQL中用命令或函数查询执行情况

mysql - 给出 2009 年 5 月、6 月和 7 月的预订房间列表,价格大于每天 8000

sql - 使用 SQL 别名查询或将列名连接到行值?

sql - 使用 SQL 获取按部门分组的最大值

mysql - 移动非常大的 MYSQL 表

mysql - 在 schema.xml 中推进 "ON UPDATE"

mysql - PHP 错误 : Maximum function nesting level of '100' reached, 中止