MS Access 2016 запрос на вставку данных столбца и группы по трем критериям - PullRequest
0 голосов
/ 29 сентября 2018

В MS Access у меня есть этот запрос для экспорта данных в Excel.

SELECT tblhrsmq_op_task_plot.ddate, tblhrsmq_op_task_plot.plot_id, tbltask_id.hrmqtask_name, ([hr_end]-[hr_begin])*24 AS qty
FROM tbltask_id INNER JOIN tblhrsmq_op_task_plot ON tbltask_id.hmtask_id = tblhrsmq_op_task_plot.hmtask_id
WHERE (((tblhrsmq_op_task_plot.plot_id)=[Formularios]![frm_export]![txtplot]));

Запрос возвращает данные вроде этого

ddate   plot_id hrmqtask_name   qty
20/06/2018  54  task06  2,00
20/06/2018  54  task06  1,25
21/06/2018  54  task06  2,25
21/06/2018  54  task06  0,75
23/06/2018  54  task06  3,25
23/06/2018  54  task06  1,00
25/05/2018  54  task15  2,75
25/05/2018  54  task15  3,25

Мне нужен запрос для вставки столбца (ddate2) рядом с колонкой 1 и сгруппируйте данные по ddate1, ddate2 и hrmqtask_name следующим образом:

ddate1      ddate2      plot_id hrmqtask_name   qty
20/06/2018  23/06/2018  54  task06      10,50
25/05/2018  25/05/2018  54  task15      6,00

Как мне запрограммировать на SQL, чтобы получить этот набор результатов?

Любая идея приветствуется.

1 Ответ

0 голосов
/ 29 сентября 2018

Примерно так: вы можете использовать min () и max () для агрегирования дат и суммы для кол-ва

SELECT 
  min(tblhrsmq_op_task_plot.ddate) as ddate1, 
  max(tblhrsmq_op_task_plot.ddate) as ddate2, 
  tblhrsmq_op_task_plot.plot_id, 
  tbltask_id.hrmqtask_name, 
  sum(([hr_end]-[hr_begin])*24) AS qty
FROM tbltask_id INNER JOIN tblhrsmq_op_task_plot ON tbltask_id.hmtask_id = tblhrsmq_op_task_plot.hmtask_id
WHERE (((tblhrsmq_op_task_plot.plot_id)=[Formularios]![frm_export]![txtplot]))
group by tblhrsmq_op_task_plot.plot_id,tbltask_id.hrmqtask_name,
;
...