0
我想查询我的数据库,只显示收到至少60%的订购电话的记录。查询mysql有两个条件
这里是我的表中的一个精简版:
dealID | Ordered | Received | precreditEL | cancelled | precredit
1 | 5 | 4 | | |
2 | 2 | 2 | | |
3 | 10 | 2 | | |
4 | 8 | 8 | Non-applicable | |
5 | 6 | 5 | Non-applicable | Cancelled | Ready
这里是我当前的查询
select deals.dealID,customer_info.accName,account_info.accessid,account_info.access_password,customer_info.contactNumber,deals.est_bill,deals.precreditAssigned,deals.precreditEL,deals.precredit
from customer_info join deals
left join account_info on account_info.custID = customer_info.custID
left join phone_details on phone_details.dealID = deals.dealID
where customer_info.custID = deals.custID
and deals.precreditEL <> 'Non-applicable'
and deals.precredit <> 'Complete'
and deals.cancelled IS NULL
GROUP BY deals.dealID
having ((100 - (((sum(phone_details.ordered) - sum(phone_details.received))/sum(phone_details.ordered)) * 100)) >= 60)
这完美的作品。只要precreditEL
不是不适用,并且其未标记为已取消,该查询将给我已收到已订购订单的60%的记录。所以我的结果将是dealID 1 and 2
。
但现在我需要添加另一个条件,绕过这种情况。如果precredit
被标记为Ready
,则无论上述条件如何,结果都将显示记录。所以我的结果将显示dealID 1, 2 and 5
任何帮助,将不胜感激。非常感谢你。