使用两个表计算每月处理的作业总和

时间:2014-09-06 12:12:14

标签: sql join

我有这两个表:

  1. TIME(此表包含time_id,而time_id又提供日,月,年等详细信息)

    |time_id|hour|day|month|year|
    _____________________________
    |1234   |1   |6  |9    |2013|
    _____________________________
    |1235   |2   |7  |9    |2013|
    _____________________________
    |1223   |2   |4  |8    |2014|
    _____________________________
    |1227   |2   |8  |8    |2014|
    
  2. SUM_JOBS_PROCESSED(此表包含time_id和为此特定time_id处理的作业的数量。)

    |time_id|sum_of_jobs_processed|  
    _______________________________
    |1234   |5              |
    _______________________________
    |1235   |6              |
    _______________________________
    |1223   |4              |
    _______________________________
    |1227   |4              |
    
  3. 我正在尝试编写一个显示类似

    的查询
    |month|year|sum_of_jobs_processed|
    __________________________________
    |9    |2013| 11                  |
    __________________________________
    |8    |2014| 8                   |
    __________________________________
    

    它应显示一个月处理的作业总数。

    有人可以帮我这些吗?我能够找到一天处理的工作总数,但是没有发生一个月处理的工作数。


2 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您正在尝试的内容,但我认为此查询可以为您提供所需的结果:

  SELECT t.month,
         t.year, 
         SUM(s.sum_of_jobs_processed)
    FROM bspm_dim_time t
    JOIN bspm_sum_jobs_day s
      ON t.time_id = s.time_id
GROUP BY t.month,
         t.year
ORDER BY t.year,
         t.month

Live DEMO.

答案 1 :(得分:0)

试试这个:

    SELECT month,
           year,
           sum(sum_of_jobs_processed)
      FROM TIME
INNER JOIN SUM_JOBS_PROCESSED
        ON TIME.time_id = SUM_JOBS_PROCESSED.time_id
  GROUP BY month,
           year
  ORDER BY month,
           year

如果正确,请标记为答案。