SQL将列值除以另一列

时间:2016-08-05 17:06:17

标签: mysql sql count

首先,请原谅我的格式。我是新来的,这是我的第一篇帖子。

我想采用按发票分割的列(成本)的值。例如,我的表目前看起来像这样,其中worker是工作的工人,inv是发票号,成本是发票的总成本,amount是每个工作人员对该发票所做的工作量。我想在最后,能够将工人金额和成本金额相加得出发票总额:

Worker  | Inv   | Costs    |  Amount  
----A---    |---1   |  12 -----| 50  
----B---    |---1   |  12 -----| 10  
----C---    |---1   |  12 -----| 40  
----A----|---2  |  1  ------|  10  
----B----|---2  |  1  ------| 10

我希望它看起来像这样:

Worker  | Inv   | Costs    |  Amount  
----A---    |---1   |  4 -------| 50  
----B---    |---1   |  4 -------| 10  
----C---    |---1   |  4 -------| 40  
----A----|---2  |  .5  ------|  10  
----B----|---2  |  .5  ------| 10  

将这个放入Excel中的数据透视表后的最终结果将显示Invoice1总共为112美元,而Invoice2的总数为21美元

2 个答案:

答案 0 :(得分:0)

这个总结了每张发票的成本和金额:

SELECT inv, SUM(Cost+Amount)
FROM MyTable
GROUP BY inv

结果是发票1为112美元,发票2为21美元

答案 1 :(得分:0)

select inv,count(1) as workercount
from tbl
group by inv

此查询将给出发票数量的计数,workercount将包含您要除以的数字。我们将它用作子查询

select worker, inv, costs/invcount.workercount as costs, amount
from tbl
inner join
(select inv,count(1) as workercount
from tbl
group by inv) invcount
on tbl.inv = invcount.inv

从那里转动结果。您可以通过SQL计算总发票金额,而不是此处所需的Excel电子表格。