通过SQL查询获取单元格中的最后状态

时间:2019-07-31 15:06:57

标签: mysql sql

我正在运行的SQL查询不是我想要的。目前,我在取消s.status =的情况下吸引客户,但这不太正确。

s.status可以包含“活动,已取消,活动,已暂停,已取消”之类的信息...即几种不同的状态。

我如何只抓住最后一个状态为“已取消”的客户?

SELECT s.customer_id, GROUP_CONCAT(s.status) AS status_list, GROUP_CONCAT(s.created) AS created_date_list, GROUP_CONCAT(s.start_date) AS start_date_list, max(c.customer_name), max(c.customer_email), max(c.updated_profile), max(p.newsletter_sub)
from imp_subscriptions s 
LEFT JOIN imp_customerdata c ON c.user_id = s.customer_id 
LEFT JOIN imp_communication_preference p ON c.user_id = p.user_id
WHERE s.status = 'cancelled' AND p.newsletter_sub = 'yes'
GROUP BY customer_id

enter image description here

2 个答案:

答案 0 :(得分:3)

想检查最后9个字符是否被取消?这样做:

where lower(right(rtrim(s.status),9)) = 'cancelled'

答案 1 :(得分:0)

使用like

s.status like '%cancelled'

或者,如果您确实想要:

right(s.status, 9) = 'cancelled'