假设我有一个如下表,该如何按工作编号和工作中心来汇总“每周”列。

+-----------+------------+---------------+--------+-----------------
| Job       |  Work_Date | Work_Center   |   Budget |     Weekly   |
+-----------+------------+---------------+--------+------+----------
|      5666 | 2014-02-23 | SURFACE       |     155  |      5       |
|      5666 | 2014-02-23 | SURFACE       |     155  |      3       |
|      5666 | 2014-02-23 | DESIGN        |     200  |      6       |
+-----------+------------+---------------+----------+--------------+


变成:

+-----------+------------+---------------+--------+-----------------
| Job       |  Work_Date | Work_Center   |   Budget |     Weekly   |
+-----------+------------+---------------+--------+------+----------
|      5666 | 2014-02-23 | SURFACE       |     155  |      8       |
|      5666 | 2014-02-23 | DESIGN        |     200  |      6       |
+-----------+------------+---------------+----------+--------------+




编辑

好吧,每周工作完美!但是,我遇到的一个问题是获取预算的总和。通常,对于每个Work_Center,该特定Job AFAIK的预算都保持不变。但是,有一件遗失的东西。一个数字被添加到预算中,因此,以Job 5666的预算为例,在我的Crystal Report中,它给了我172而不是155。所以我做了进一步的挖掘,结果发现它没有像第一个那样添加重复的预算。表,但如果不是重复值(根据我的理解),它将添加一个值。

所以我找到了这一行。

+-----------+------------+---------------+--------+-----------------
| Job       |  Work_Date | Work_Center   |   Budget |     Weekly   |
+-----------+------------+---------------+--------+------+----------
|    5666-8 | NULL       | SURFACE       |     17   |      0       |
+-----------+------------+---------------+----------+--------------+


现在,如果我想将此值添加到预算中,那么当我尝试下面提供的SQL答案时,它将无法正常工作。我试过修剪工作号,所以它只说5666,所以看到工作号中有一个匹配项,它将预算加在一起,但这也不起作用。

我希望我的解释会更清楚。

最佳答案

只需将结果分组并汇总Weekly列:

SELECT Job, Work_Date, Work_Center, Budget, SUM(Weekly)
FROM your_table
GROUP BY Work_Center, Job;

关于mysql - 汇总具有相同ID/职位编号的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22102618/

10-11 04:50
查看更多