【发布时间】:2016-08-04 19:53:12
【问题描述】:
SELECT userid,
(SELECT CASE WHEN (COUNT(CASE WHEN casinowagers != 0
THEN 1
ELSE null
END)
+ COUNT(CASE WHEN depositmade_amt != 0
THEN 1
ELSE null
END)) >= 3
AND (Round(sum(totalhold - playercomps - freemoney - (depositmade_amt*.1)),2)) >= 10
THEN "VIP"
ELSE "NON-VIP"
END as VIPcheck
FROM player_activity
WHERE YEAR(txndate) = YEAR(CURRENT_DATE - INTERVAL 3 MONTH)
AND MONTH(txndate) = MONTH(CURRENT_DATE - INTERVAL 3 MONTH)
) as vipMonthStatus,
(COUNT(CASE WHEN casinowagers != 0
THEN 1
ELSE null
END)
+ COUNT(CASE WHEN depositmade_amt != 0
THEN 1
ELSE null
END)) as activityCount,
(Round(sum(totalhold - playercomps - freemoney - (depositmade_amt*.1)),2)) as Value,
FROM player_activity
WHERE userid = 2023410
GROUP BY year(txndate),month(txndate)
LIMIT 1000
所以基本上 vipMonth 状态总是返回为“VIP”。但是,对于 5 月份(由于下面的“where”声明),它应该是“non-vip”,因为只进行了 1 次存款和 1 次投注。
什么给了?
( WHERE YEAR(txndate) = YEAR(CURRENT_DATE - INTERVAL 3 MONTH)
AND MONTH(txndate) = MONTH(CURRENT_DATE - INTERVAL 3 MONTH) )
【问题讨论】:
-
我猜您在该子查询中还需要
WHERE userid = 2023410(或将其与等效的 WHERE 相关联)。