简体   繁体   English

MYSQL查询不是我要找的结果

[英]MYSQL query not the result I looking for

I have this query: 我有这个查询:

SELECT gamer_id,COUNT(*) AS sum, SUM(amount) as amount 
        FROM sales_list 
        WHERE rdate BETWEEN '2012-04-01' AND '2012-04-30' AND gamer_id NOT IN 
            (SELECT gamer_id FROM sales_list WHERE rdate < '2012-04-01' GROUP BY gamer_id) 
        GROUP BY gamer_id

This query printed me "2" results and I'm looking just "1". 该查询向我显示了“ 2”个结果,而我的搜索结果仅为“ 1”。

I have 1 gamer's that deposit 2 times in April and I don't want to count the total deposits just to count the total gamer's that deposited. 我有1个玩家的存款在4月有2次存款,我不想计算存款总额,只是为了计算存款的玩家总数。

any advice? 有什么建议吗?

I don't really get it, but you want the numbers of deposits of a gamer only or the amount he deposited in addition?! 我真的不明白,但是您只想要一个玩家的存款数量还是他所存的金额?

This should deliver number of deposits: 这应该提供一定数量的存款:

SELECT gamer_id, COUNT(gamer_id) AS sum, SUM(amount) as amount 
FROM sales_list 
WHERE rdate BETWEEN '2012-04-01' AND '2012-04-30'
GROUP BY gamer_id
HAVING COUNT(gamer_id)>0

Edit: 编辑:

SELECT DISTINCT gamer_id
FROM sales_list 
WHERE rdate BETWEEN '2012-04-01' AND '2012-04-30' 
AND gamer_id NOT IN  (SELECT gamer_id 
                      FROM sales_list 
                      WHERE rdate < '2012-04-01') 
GROUP BY gamer_id

try this: 尝试这个:

SELECT sl.gamer_id,COUNT(*) AS sum, SUM(sl.amount) as amount 
        FROM sales_list sl
        WHERE sl.rdate BETWEEN '2012-04-01' AND '2012-04-30' AND sl.gamer_id NOT IN 
            (SELECT sl1.gamer_id FROM sales_list sl1 WHERE sl1.rdate < '2012-04-01' GROUP BY sl1.gamer_id) 
        GROUP BY sl.gamer_id

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM