Я не могу понять запрос MySQL, чтобы извлечь данные, которые я хочу из этой таблицы «timeEntry»:SQL Multiple GROUP BY
hours creationDate userId clientId projectId taskId
20 2012-02-18 1 1 1 1
40 2012-02-18 1 1 1 1
30 2012-02-21 2 1 1 1
20 2012-02-22 2 1 1 2
30 2012-02-22 2 1 1 2
80 2012-02-23 1 2 2 2
10 2012-02-23 3 2 2 2
15 2012-02-23 1 2 2 3
40 2012-02-23 1 2 4 1
И я хотел бы иметь такой результат, как другой таблицу или файл csv/excel или php-массив (где totalHours - сумма часов для userId) за определенный период времени, скажем (между 2012-02-01 и 2012-02-25):
clientId projectId taskId userId totalHours
1 1 1 1 60
2 30
2 2 50
2 2 2 1 80
3 10
3 1 15
4 1 1 40
Я думаю, мне нужно использовать несколько групп, я попробовал что-то вроде:
SELECT clientId, projectId, taskId, userId, sum(hours)
FROM `timeEntry`
WHERE date_creation >= "2012-02-01"
AND date_creation <= "2012-02-25"
GROUP BY clientId, projectId, taskId, userId;
Но не получилось ...
Спасибо заранее.
пожалуйста, вы можете предоставить схему на http://sqlfiddle.com –
не Вы действительно хотите нет данных в суб строки? Например, для вашей второй и третьей строк было бы хорошо, если бы они имели значение '1' для' clientId'? –
@Abe Miessler: да, все будет в порядке. –