SQL Help:计算每个销售的最新状态

时间:2012-08-08 08:46:20

标签: sql asp-classic count ms-access-2007

我的tbl_sActivity看起来像这样:

  

act_id | Client_id | act_status | user_id | act_date
  1 | 7 |暖| 1 | 19/7/12
  2 | 7 | dealed | 1 | 30/7/12
  3 | 8 |热点| 1 | 12年6月8日
  4 | 5 |冷| 22 | 12年7月8日
  5 | 6 |冷| 1 | 16/7/12
  6 | 6 |暖| 1 | 18/7/12
  7 | 6 | dealed | 1 | 12年7月8日

我想从每个user_id客户端的最新状态算起act_status。输出应该像这样

  

user_id | act_status |伯爵(act_status)
    1 | dealed | 2
    1 |热点| 1
    22 |冷| 1

但我能做的只是展示他们没有任何功能的最新活动。所以请帮助我。非常感谢你。

2 个答案:

答案 0 :(得分:1)

我没有得到你的逻辑,最简单的查询将是这样的:

select user_id, act_status, count(act_Status)
from your_table
group by user_id, act_status

但是为什么用户1的预期输出没有“冷”?

编辑:

select user_id, act_status, count(act_Status)
from your_table
where act_date in (
    select  max(act_date)
    from your_table
    group by Client_id
)
group by user_id, act_status

答案 1 :(得分:0)

怎么样:

SELECT act_status,
       user_id,
       Count(act_id) AS idcount
FROM   (SELECT a.act_id,
               a.act_status,
               a.user_id
        FROM   tbl_sActivity AS a
        WHERE  a.act_id  IN (SELECT TOP 1 act_id
                                   FROM   tbl_sActivity b
                                   WHERE  a.client_id = b.client_id
                                          AND a.user_id = b.user_id
                                   ORDER  BY act_date DESC) ) As x
GROUP  BY act_status,
          user_id