2013-05-13 5 views
0

에서 여러 카운트는 내가 하나 개의 쿼리에이 쿼리를 만들 수mysql을 하나의 테이블

SELECT 
    DATE_FORMAT(`member_subscribe_at`, '%d-%m-%y') Tanggal, 
    count(`member_msisdn`) 'total_reg' 
FROM 
    `t_push_member` 
WHERE 
    `service_keycode`='nocan' 
GROUP BY 
    Tanggal, 
    'total_reg' 
ORDER BY 
    Tanggal 

SELECT 
    DATE_FORMAT(`member_unsubscribe_at`, '%d-%m-%Y') Tanggal, 
    COUNT(`member_msisdn`) 'total_unreg' 
FROM 
    `t_push_member` 
WHERE 
    `service_keycode`='nocan' 
GROUP BY 
    Tanggal, 'total_unreg' 
ORDER BY 
    Tanggal 

방법 t_push_member 하나 개의 테이블에서이 쿼리가?

+0

에서 UNION에 대해 자세히 알아보십시오. – Ali

+0

결과를 어떻게 보이시겠습니까? – xagyg

+0

하나의 결과에서 tanggal, reg, unreg를 원합니다. – Maliq

답변

0

둘 사이에 사용 "노동 조합"- 대신에와

1
select * 
from 
(SELECT DATE_FORMAT(member_subscribe_at, '%d-%m-%y') Tanggal, count(member_msisdn),'REG' as Registered FROM t_push_member 
    where service_keycode='nocan' 
    group by Tanggal 

    UNION 

    SELECT DATE_FORMAT(member_unsubscribe_at, '%d-%m-%Y') Tanggal, count(member_msisdn),'NOT_REG' as Registered FROM t_push_member 
    where service_keycode='nocan' 
    group by Tanggal 
) 
order by Tanggal 

당신은 그것을 하나 개의 쿼리에서 수행하려면 하위 쿼리를 사용할 수 있습니다 http://www.w3schools.com/sql/sql_union.asp

+0

# 1221 - UNION 및 ORDER BY의 잘못된 사용 – Maliq

+0

@Maliq : UNION 열 이름도 열을 반환하는 모든 쿼리에서 동일해야합니다. 위에 업데이트 된 답변을 참조하십시오. 효과가있을 것입니다. – ankurtr

+0

이 내 쿼리 SELECT (SELECT 수 (*) t_push_member FROM WHERE service_keycode = 'NOCAN' AND member_unsubscribe_at <> "0000-00-00 0시 0분 0초 ' )'회원 unreg를 '(AS SELECT COUNT (*) t_push_member FROM WHERE service_keycode = 'NOCAN'AND unreg를 'REG 회원' 결과 만 멤버 등록 부재 AS member_unsubscribe_at = "0000-00-00 0시 0분 0초 ' ) 및 날짜별로 그룹을 추가하고 싶습니다. – Maliq