2014-07-25 2 views
0

가 정상 MySQL의 쿼리 여기PHP는 MySQL의 경우 캐스트 날짜 형식으로 여기

SELECT SUM(Minutes) as minsDecPrac, COUNT(DISTINCT (CAST(dtDateTime as DATE))) as playDecPrac FROM `tbl_atschool_timelog` WHERE `intuid` = 48876 AND `intGametypeId` = 2 AND `intGame` = 1 

는 쿼리가 언제

SELECT SUM(CASE WHEN intGametypeId = 2 AND intGame =1 THEN Minutes ELSE 0 END) AS minsDecPrac COUNT(DISTINCT CASE WHEN intGametypeId = 2 AND intGame =1 THEN (CAST(dtDateTime as DATE)) ELSE 0 END) AS playDecPrac FROM `tbl_atschool_timelog` WHERE `intuid` = 48876 

여기 CASE를 사용하는 출력 여기

minsDecPrac  playDecPrac 
17     1 

입니다 출력은

minsDecPrac  playDecPrac 
17     2 
입니다.

문제는 내가 CASE WHEN을 사용하면 "playDecPrac"(dtDateTime)의 출력이 잘못되었다는 것입니다. 내가 뭘 잘못했는지 모르겠다. 사람이 여기

답변

1

이 절을 알고 있다면 제발 도와주세요 :

COUNT(DISTINCT CASE WHEN intGametypeId = 2 AND intGame =1 THEN (CAST(dtDateTime as DATE)) ELSE 0 END) 

카운트 ELSE 0에서 0 별개의 값으로, 날짜에 추가한다. 따라서 COUNT(DISTINCT)은 있어야 할 것보다 하나 더 높습니다.

ELSE NULL 시도해보십시오.

+0

감사합니다. 존스. 그것의 올바르게 작동합니다. 고마워. – NitheesBavesh