MYSQL查询不是我要找的结果

时间:2012-05-01 08:35:04

标签: php mysql

我有这个问题:

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

此查询打印出“2”结果,我只看“1”。

我有4名游戏玩家在4月份存入2次,我不想计算存款总数,只计算存放的游戏玩家总数。

任何建议?

2 个答案:

答案 0 :(得分:1)

我真的不明白,但你只想要游戏玩家的存款数量或者他还要存入的金额?!

这应该可以提供多少存款:

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

编辑:

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

答案 1 :(得分:0)

试试这个:

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