【问题标题】:MS Access 2016 query to insert column and group data by three criteriaMS Access 2016 查询按三个条件插入列和分组数据
【发布时间】:2018-09-29 01:41:48
【问题描述】:

在 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

我需要查询在 column1 旁边插入一列 (ddate2),并按 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 中编程来获得这个结果集?

欢迎提出任何想法。

【问题讨论】:

    标签: ms-access sql-insert


    【解决方案1】:

    类似于以下内容 - 您可以使用 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,
    ;
    

    【讨论】:

    • 伊恩·肯尼。您的 SQL 代码非常适合我的项目。如你所知,我做了一些小改动。这是我第一次学习最小和最大函数的使用。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多