Jet SQL / MS Access - запрос, количество задач, сумма времени, пользователем - PullRequest
0 голосов
/ 27 июня 2018

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

У меня есть одна таблица:

tasks table

Я бы хотел получить следующие результаты из одного запроса:

user_name  |   task   |   CountOftask  |   SumOftime
    U1           1            1              00:15
    U2           1            1              00:25
    U2           2            1              00:05
    U3           2            1              00:20
    U3           3            2              00:40

re: таблица 'tasks':

Поле времени - дата / время чч: нн. Поле даты не имеет значения для запроса на данном этапе - я хочу вернуть все исторические данные.

re: запрос:

Я хотел бы видеть количество задач, СУММУ времени и Группу по имени пользователя и задаче, используя один запрос с дополнительным выбором, вместо двух отдельных запросов.

Спасибо за ваше время

Edit:

Я могу создать этот вывод, но я использую два запроса (Q1), чтобы преобразовать время в целое, суммируя его. (Q2) с помощью Q1 преобразовать целое число обратно во время чч: мм.

1:

SELECT 
user_name
, task
, Count(task) AS CountOftask
, Sum(CLng(24*60*CDate([time]))) AS time_mins
FROM tasks
GROUP BY user_name, task;

2:

SELECT 
[301 SF count of task].user_name
, [301 SF count of task].task
, [301 SF count of task].CountOftask
, [time_mins]\60 & Format([time_mins] Mod 60,"\:00") AS Time_sum
FROM [301 SF count of task]
;

Я бы хотел сделать это за один запрос, любой совет приветствуется.

1 Ответ

0 голосов
/ 27 июня 2018

Попробуйте с:

Select
    user_name,
    Max(task) As max_task,
    Count(*) As task_count,
    CDate(Sum([time])) As total_time
From
    YourTable
Group By    
    user_name,
    task

Редактировать - если время является текстом:

    Sum(CDate([time])) As total_time

или принудительное указание даты:

    CDate(Sum(CDate([time]))) As total_time
...