我得到了2个CASE语句:第一个CASE语句如下:
Case When ((cust_shipmentdate_awb Is Null OR cust_shipmentdate_awb = '')
AND (comp_shipdate_awb IS NULL OR comp_shipdate_awb = '')) Then 'Pending'
ELSE 'Shipped' End AS shipment_status
第二个CASE语句如下:
Case When apbg_bal_pay_amt ='0' Then 'Received'
Else 'Pending' End AS payment_status
我希望再编写一个名为 OVERALL_Status 的 CASE 语句。这基本上是这两种情况(shipment_status 和 payment_status)的组合,这意味着如果 Shipment 状态为“Shipped”且 Payment_Status 为“Received”,则Overall_status 为“Completed”,否则为“Not Completed”。谁能帮我解决这个问题吗?这里我真的很震撼。我尝试了两种情况的组合,但不起作用:
Case When (cust_shipmentdate_awb Is Null OR cust_shipmentdate_awb = '') AND
(comp_shipdate_awb IS NULL OR comp_shipdate_awb = '') AND (apbg_bal_pay_amt != '0') Then
'Pending' ELSE 'Completed' End AS overall_status
最佳答案
我认为有两种解决方案: 1. 将当前查询设为子查询,并在子查询的结果上添加另一个 CASE 语句。 (我认为这是一个漂亮的解决方案) 2. 您向现有案例添加另一个 WHEN。组合前两个 WHEN 子句中的子句即可得到结果。 (可能是最优化的解决方案)
关于mysql - 带条件的 CASE 语句 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41777187/