2014-01-27 3 views
0

나는 그들이 어떤 그래서 만약 내가 두 그룹, 날짜를 기준으로 한 그룹 (이이MySQL은 추가 열에서 그룹 이름을/기존 쿼리에 열을 추가 인쇄해야

SELECT us.recNo, 
     CONCAT(us.firstname, ' ',us.lastname) AS fullname, 
     max(dy.date) AS diarydate 
FROM users us LEFT JOIN diary dy ON us.recNo = dy.clientID AND dy.date >= 
     (SELECT max(DATE(dateTime)) 
     FROM `history` 
     WHERE userID=us.managerID) OR dy.date is NULL 
WHERE us.managerID = 6 and us.accountStatus = 2 and us.securityGroup = 50 
GROUP BY us.recNo, fullname 
ORDER BY diarydate DESC, fullname 

같은 쿼리를 일기 입력 날짜)를 입력 한 다음 나머지는 그룹화하십시오 (NULL).

PHP를 사용하여 드롭 다운 상자에서 optgroup을 사용해야합니다. 이를 위해 나는

recNo fullname diarydate group

2 LucyLabrond 23/11/13 DiaryGroup

3 Emily 24/12/13 DiaryGroup

4 Vincus Null NoDiary

5 Matt Null NoDiary

나에게 그룹이를 도와주세요 예를

를 들어, 레코드가 속하는 그룹을 말한다 여분의 열을 가질 필요가있다.

+1

당신은 'CASE ... WHEN' 유형 접근법을 사용할 수 있습니다. –

답변

0

case 절을 사용해야합니다. 이것을 시도하십시오 :

SELECT us.recNo, 
     CONCAT(us.firstname, ' ',us.lastname) AS fullname, 
     max(dy.date) AS diarydate, 
     case when MAX(dy.date) IS NOT NULL then 'DiaryGroup' else 'NoDiary' end as group 
FROM users us LEFT JOIN diary dy ON us.recNo = dy.clientID AND dy.date >= 
     (SELECT max(DATE(dateTime)) 
     FROM `history` 
     WHERE userID=us.managerID) OR dy.date is NULL 
WHERE us.managerID = 6 and us.accountStatus = 2 and us.securityGroup = 50 
GROUP BY us.recNo, fullname 
ORDER BY diarydate DESC, fullname