首页 > 解决方案 > 计算 SQL Server 中两个相似表列之间的比率

问题描述

我有这张桌子

Code1   Month1   Month2   Month3 
--------------------------------
Delta    2000     3000     1000
Charlie  1000     1000     2000
Bravo     800      200      300

我有另一个类似的临时表,其中包含来自不同计算方面的数据

Code1     Month1  Month2  Month3 
--------------------------------
Delta      1000    3000   3000
Charlie     300     400    200
Bravo       400     200    300

我想知道如何将两个表中的数据合并为一个,格式如下

Code1      Month1  Month2  Month3 
---------------------------------
Delta   2      ........
Charlie 3.3    ...
Bravo   2      ....

这基本上是匹配行,然后执行第一个表列/第二个表列。

我有一个粗略的方法是将表连接到一个大表中,然后通过划分连接的列创建另一个临时表,但想知道是否有更好的方法。

谢谢

标签: sqlsql-serversql-server-2012

解决方案


你可以使用内连接

select 
  t1.Code1, 
  (t1.month1 * 1.0) / t2.month1 as month1,
  (t1.month2 * 1.0) / t2.month2 as month2,
  (t1.month3 * 1.0) / t2.month3 as month3
from t1
inner join t2 on t1.code1 = t2.code1

请注意:

从提供的示例数据来看,似乎不需要完全外连接。如果数据是 1 对 1,最好使用内部连接来考虑性能


推荐阅读