2012-07-19 251 views
0

我有一個查詢問題: 我有一個表放在客戶MySQL查詢條件語句

orders: customer_id, payment_method ...some other field 

我需要提取CUSTOMER_ID和「YES」,如果客戶有訂單列表由至少一個支付付款

的具體方式我想是這樣的:

SELECT DISTINCT o.customer_id, 
CASE WHEN o.payment_method = 10 THEN 'YES' ELSE 'NO' END AS credit_card 
FROM orders AS o 
WHERE o.year = 2012 
ORDER BY o.customer_id 

但如果客戶已付款的Wi顯示了兩種不同的支付方式,一種是'YES',一種是'NO'...可能只有一種價值?

回答

2
SELECT o.customer_id, 
     IF(MAX(IF(o.payment_method=10, 1, 0)) = 1, 'YES', 'NO') credit_card 
FROM  orders o 
WHERE o.year = 2012 
GROUP BY o.customer_id 
0

你可以做一個自我與測試組,並加入了NULL在連接表(未經測試):

SELECT customer_id, IF(p.customer_id IS NULL, 'NO', 'YES') 
FROM orders o 
LEFT OUTER JOIN orders p ON o.customer_id = p.customer_id AND p.payment_method = 10 
    AND p.year = 2012 
WHERE o.year = 2012 
GROUP BY o.customer_id 
ORDER BY o.customer_id 

不知道,如果你需要從問題的p.year = 2012條件或沒有。