2014-01-16 4 views
1

У меня есть две таблицы (назовём их случаи и пользователи) структурированными что-то вроде этого: СлучаиMysql ВЫБОР и COUNT ГДЕ

ID|status  |user_id 
__|____________|_______ 
1 |Open  |6 
2 |Closed  |9 
3 |Incomplete |9 

Пользователи:

ID| 
__|_____ 
6| 
9| 

Я хотел бы, чтобы выбрать счетчик для идентификатор, а также счетчик для каждого из полей статуса.

В настоящее время я пытался:

SELECT COUNT(c.id), COUNT(
(SELECT status from cases where status = 'Open')), 
COUNT(
(SELECT status from cases where status = 'Closed')), 
COUNT(
(SELECT status from cases where status = 'Incomplete')) 
FROM cases as c 
JOIN users as u on u.id = c.user_id 

Я получаю ошибку запроса возвращения более одной строки.

Это то, что я пытаюсь достичь

ID| Open | Closed | Incomplete |user_id 
__|______|________|____________|__________ 
2|0  |1  |1   |9 

резюмировать: Подсчет для каждого идентификатора пользователя, который подсчитывает, сколько идентификаторов и счетчик для каждого состояния.

ответ

3

Вы можете попробовать это с sum

SELECT COUNT(c.id), 
SUM(c.status = 'Open') Open , 
SUM(c.status = 'Closed') Closed , 
SUM(c.status = 'Incomplete') Incomplete, 
u.id user_id 
FROM cases as c 
JOIN users as u on u.id = c.user_id 
GROUP BY u.id 
+1

Это кажется таким разумным ответом. Просто трудно сказать, действительно ли это ответ на вопрос. –

+1

Дерп момент. Благодаря! – Kisaragi

Смежные вопросы