【问题标题】:how to sum a field and distribute the sum between records in another table如何对字段求和并在另一个表中的记录之间分配总和
【发布时间】:2015-08-28 14:30:08
【问题描述】:

我有一张表,其记录由少量库存组成。我需要汇总这些记录的成本,并根据记录的价格将总和分配到另一个表中。例如。假设库存总和是 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% sum 将用于 job3 和 job4。所以决赛桌应该是这样的:

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

我该如何做到这一点?

【问题讨论】:

  • 你使用的是什么关系型数据库?
  • 我正在使用 sql 大师
  • 但是对于哪个数据库? AFAIK 有一个适用于 Oracle、MySQL 和 SQL Server 的 SQL Maestro。
  • 抱歉,SQL Server

标签: sql sql-server select sum


【解决方案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

【讨论】:

  • 但是如何对字段求和?
  • 子查询使用sum 函数来做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 2017-12-30
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
相关资源
最近更新 更多