2015-01-31 3 views
1

오늘의 고객 수를 오늘, 어제, 지난 주, 지난 달로 계산하고 싶습니다.지난 1 주간, 지난 1 개월간, 어제의 필드 수를 얻는 방법

나는 나는 다음과 같은

고객처럼

c_id city_id c_name   currentdate 
    1  1  Rama    2015-01-30 09:43:17 
    2  1  kavitha   2015-04-30 09:43:17 

도시

city_id city_name 
    1   hyd 
    2   Wgl 

난 다음에 그것을 시도를 내 테이블 구조가

city today yesterday lastweek lastmnth 
    1  23  2   12   12 

같은 결과합니다. 이와 유사하게

select c.c_city, (select count(cr_id) as lastmonth from customer 
    where currentdate > DATE(NOW() - INTERVAL 30 DAY))) from customers as c 
    left join cities as ci on c.city_id = ci.city_id group by c.city_id 

답변

0

: 지난 주와 지난 달

SELECT city_id as city, 
SUM(CASE WHEN LEFT(currentdate,10) = LEFT(NOW(),10) THEN 1 ELSE 0 END) as today, 
SUM(CASE WHEN LEFT(currentdate,10) = LEFT(NOW()-INTERVAL 1 DAY,10) THEN 1 ELSE 0 END) as yesterday, 
SUM(CASE WHEN currentdate > NOW()-INTERVAL 7 DAY THEN 1 ELSE 0 END) as lastweek, 
SUM(CASE WHEN currentdate > NOW()-INTERVAL 30 DAY THEN 1 ELSE 0 END) as lastmnth 
FROM customers GROUP BY city_id 

, 당신 7 일 뒤 30 일 다시 의미 있으리라 믿고있어. 그러나 이전 주와 이전 달의 데이터가 필요한 경우 (이 상황에서 나에게별로 의미가 없음) 간격을 다시 작성해야 할 수 있습니다.

+0

감사합니다. 매우 도움이됩니다. –

관련 문제