如何对一个字段求​​和并在另一个表中的记录之间分配总和

时间:2015-06-12 14:25:03

标签: sql sql-server select sum

我有一张表,其记录包含次要库存。我需要将这些记录的成本相加,并根据记录的价格在另一个表中分配总和。例如。比如说库存的总和是1000美元,而另一张表中我有4个工作。

         *table 2*                    *table 1*
**job#  amount    InvAmnt**       **item#  cost**
  job1  $100,000     -               1     $250
  job2  $50,000      -               2     $150
  job3  $25,000      -               3     $100
  job4  $25,000      -               4     $500

我需要根据表2中金额的值对表1中的所有内容求和。因此,总和的50%将转到job1,25%的总和将转到job2,12.5%的总和会去job3和job4。所以决赛桌应该是这样的:

         *table 2*          
**job#  amount    InvAmnt**  
  job1  $100,000   $500
  job2  $50,000    $250
  job3  $25,000    $125
  job4  $25,000    $125

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以汇总每个表格中的项目以获得总金额,然后将汇总结果交叉加入table2

UPDATE     table2
SET        InvAmnt = sum1 * InvAmnt / sum2
FROM       table2
CROSS JOIN (SELECT SUM(cost) AS sum1 FROM table1) t
CROSS JOIN (SELECT SUM(InvAmnt) AS sum2 FROM table2) s