【问题标题】:Finding Weekly Summary from a table从表中查找每周摘要
【发布时间】:2011-03-06 04:30:26
【问题描述】:

我在这里编写一个 SQL 语句,用于从表中查找每周摘要。我有一个包含以下字段的表格:

UIN, Date, Staff, work_hours

现在我想收集一个员工一周工作了多少小时的信息。

【问题讨论】:

    标签: sql data-analysis


    【解决方案1】:

    很难从您的问题中看出,但如果您要查找每位员工一周内的总小时数,请尝试以下操作:

    SELECT Staff, SUM(work_hours)
    FROM YourTable
    WHERE Date BETWEEN week_start_day AND week_end_day
    GROUP BY Staff
    

    否则,如果您正在寻找按周汇总的完整报告,您可以尝试以下方法,这将为您提供每个员工每周的工作时间,按周汇总:

    SELECT YEAR(Date), WEEK(Date), Staff, SUM(work_hours)
    FROM YourTable
    GROUP BY YEAR(Date), WEEK(Date), Staff
    ORDER BY YEAR(Date), WEEK(Date)
    

    【讨论】:

      【解决方案2】:

      您可能想尝试以下方法:

      SELECT    staff, 
                WEEK(date) week_no, 
                SUM(work_hours) as work_hours_sum
      FROM      log
      GROUP BY  staff, WEEK(date)
      ORDER BY  WEEK(date), staff;
      

      测试用例(MySQL):

      CREATE TABLE log (
          uin int auto_increment primary key, 
          date date, 
          staff int, 
          work_hours int
      );
      
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-01', 1, 5);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-01', 2, 7);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-02', 1, 2);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-02', 2, 1);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-08', 1, 2);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-08', 2, 5);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-09', 1, 6);
      INSERT INTO log (date, staff, work_hours) VALUES ('2010-06-09', 2, 5);
      

      结果:

      +-------+---------+----------------+
      | staff | week_no | work_hours_sum |
      +-------+---------+----------------+
      |     1 |      22 |              7 |
      |     2 |      22 |              8 |
      |     1 |      23 |              8 |
      |     2 |      23 |             10 |
      +-------+---------+----------------+
      4 rows in set (0.00 sec)
      

      【讨论】:

      • thnx...你甚至是正确的丹尼尔。谢谢帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2012-04-10
      • 2020-05-17
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多