【发布时间】:2017-05-05 02:36:03
【问题描述】:
我正在尝试在 C# 中执行一些 SQL 以及 Access 数据库。我有两张桌子。主表和副表:
MAIN TABLE
DoubleValue | | | |
----------------------------------------
1,40 | | | |
1,80 | | | |
2,00 | | | |
1,80 | | | |
1,60 | | | |
1,60 | | | |
----------------------------------------
SECOND TABLE
DoubleValue | Points | Weight |
-------------------------------
1,00 | 100 | 2 |
1,20 | 98 | 2 |
1,40 | 96 | 2 |
1,60 | 94 | 2 |
1,80 | 92 | 2 |
2,00 | 90 | 2 |
-------------------------------
我需要根据“双值”列在“第二个表”中找到所有匹配的行。然后对于匹配的行,我想获取“Points”和“Weight”列中的值,并将这两列相乘并创建一个名为“Sum”的列,并将所有三列添加到“MAIN TABLE”:
MAIN TABLE - RESULT/OUTPUT
DoubleValue | Points | Weight | Sum |
-------------------------------------
1,40 | 96 | 2 | 192 |
1,80 | 92 | 2 | 184 |
2,00 | 90 | 2 | 180 |
1,80 | 92 | 2 | 184 |
1,60 | 94 | 2 | 188 |
1,60 | 94 | 2 | 188 |
-------------------------------------
“主表”实际上不需要“物理地”插入新列。如果它们可以像“SELECT Points * Weight AS Sum”那样显示在输出中,我会非常希望它们会在“Sum”显示但实际上并未插入表中的位置产生。但是好的,如果它需要实际插入,那么我会去的。
如何做到这一点?
【问题讨论】:
-
这看起来像一个非常基本的
INNER JOIN。你试过什么? -
我确实很难弄清楚该尝试什么。我已经有 15 年没有做任何 SQL 了,所以我不记得如何做所有的 INNER JOINS。我只记得非常非常基本的 SQL,例如 SELECT、UPDATE 和 INSERT。