मैं एक 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

0
Rob 31 जुलाई 2019, 18:06

1 उत्तर

सबसे बढ़िया उत्तर

जाँच करना चाहते हैं कि अंतिम 9 वर्ण रद्द कर दिए गए हैं? इसे इस तरह करो:

where lower(right(rtrim(s.status),9)) = 'cancelled'
3
Hogan 31 जुलाई 2019, 18:09