我正在尝试使用 C# 和 Access 数据库执行一些 SQL。我有两张 table 。主表和第二个表:
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 |
-------------------------------
我需要根据“Double Value”列在“SECOND TABLE”中找到所有匹配的行。然后对于匹配的行,我想获取“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
语句。请注意 Sum
被换行,因为它在大多数 SQL 变体中是一个 保留 词。请尽量避免用这些词命名项目。
SELECT m.DoubleValue
, s.Points
, s.Weight
, [Sum] = s.Points * s.Weight
FROM MainTable AS m
INNER JOIN SecondTable AS s ON m.DoubleValue = s.DoubleValue
关于c# - SQL 从其他表中获取匹配值并显示在主表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43795591/