根据另一个表的条件更新一个表

问题描述 投票:-2回答:1

我的桌子看起来像这样。

tables photo

如果核准的_by_asm = 1且核准的_by_rsm = 0,则mystatus列应为PENDING

否则,如果核准的_by_asm = 0且核准的_by_rsm = 1,则mystatus列应为PENDING

否则,如果roved_by_asm = 0且roved_by_rsm = 0,则mystatus列应为PENDING

否则,如果approved_by_asm = 1且approved_by_rsm = 1,则mystatus列应为已批准

其他mystatus列应为DECLINED。如何使用SQL实现此功能,我将MySQL用作数据库。

这是我的代码:

create view view1 

as 

select *


 case 

  when approved_by_asm = 0 and approved_by_rsm = 0 THEN 'PENDING'

  when approved_by_asm = 0 and approved_by_rsm = 1 THEN 'PENDING'

  when approved_by_asm = 1 and approved_by_rsm = 0 THEN 'PENDING'

  when approved_by_asm = 1 and approved_by_rsm = 1 THEN 'APPROVED'

  else 'DECLINED' 

  end mystatus 

from loan_coooler ; 
mysql
1个回答
0
投票
DROP TABLE IF EXISTS my_table; CREATE TABLE my_table (a TINYINT NULL,b TINYINT NULL); INSERT INTO my_table VALUES (NULL,NULL), (0,NULL), (NULL,0), (1,NULL), (NULL,1), (0,0), (1,0), (0,1), (1,1); SELECT * , -- AND NOTE THE COMMA!!! CASE WHEN a+b < 2 THEN 'pending' WHEN a+b = 2 THEN 'approved' ELSE 'declined' END x FROM my_table; +------+------+----------+ | a | b | x | +------+------+----------+ | NULL | NULL | declined | | 0 | NULL | declined | | NULL | 0 | declined | | 1 | NULL | declined | | NULL | 1 | declined | | 0 | 0 | pending | | 1 | 0 | pending | | 0 | 1 | pending | | 1 | 1 | approved | +------+------+----------+
© www.soinside.com 2019 - 2024. All rights reserved.