簡體   English   中英

mysql查詢中不同用戶的兩個日期之間的總記錄

[英]Sum record between two dates for different users in mysql query Issue

我有兩個表leadlead_details 存在現場status 如果status=1打開,則status=2關閉,並且未指定status=3

我想找到所有打開,關閉的總和,而不是為每個用戶/代理指定的總和。 這是我嘗試過的方法,但給我錯誤的數據

select agent_id,
       type,
       status,
       created_date,
       category_id,
       sum(case when status = 2 then val else 0 end) as closed1,
       sum(case when status = 1 then val else 0 end) as opened1, 
       sum(case when status = 3 then val else 0 end) as notspecefied1 
  from ( select l.agent_id,
                l.type,
                ld.category_id,
                l.status,
                l.created_date,
                count(*) as val 
           from crm_leads l,
                crm_leads_details ld 
          where l.id=ld.lead_id AND  
                status in (2, 1, 3) 
          GROUP BY status, agent_id 
        ) t 
 WHERE created_date BETWEEN '2013-8-2' AND '2013-9-2' 
 GROUP BY agent_id

您需要在子查詢中放入WHERE created_date子句。

select agent_id,type,status,created_date,category_id,
       sum(case when status = 2 then val else 0 end) as closed1,
       sum(case when status = 1 then val else 0 end) as opened1, 
       sum(case when status = 3 then val else 0 end) as notspecefied1 
from ( select l.agent_id,l.type,ld.category_id,l.status,l.created_date,
       count(*) as val from crm_leads l JOIN crm_leads_details ld 
       ON l.id=ld.lead_id 
       WHERE created_date BETWEEN '2013-8-2' AND '2013-9-2' AND status in (2, 1, 3)
       GROUP BY status, agent_id ) t 
GROUP BY agent_id

請注意,結果中的created_date只是每個代理商在該期間內隨機選擇的日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM