C# SQL从其他表中获取匹配值并显示在主表中
我正在尝试使用C#和Access数据库来执行一些SQL。我有两张桌子。主表和第二个表:C# SQL从其他表中获取匹配值并显示在主表中,c#,sql,ms-access,C#,Sql,Ms Access,我正在尝试使用C#和Access数据库来执行一些SQL。我有两张桌子。主表和第二个表: MAIN TABLE DoubleValue | | | | ---------------------------------------- 1,40 | | | | 1,80 | | | | 2,00 | | |
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”:
“主表”实际上不需要“物理地”插入新列。我非常希望它们可以显示在输出中,就像“选择点*权重作为总和”将产生“总和”将显示但不实际插入表中一样。但是好的,如果它真的需要被插入,那么我将使用它
如何做到这一点?您正在寻找一个更简单的
内部连接
语句。请注意,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
这看起来像一个非常基本的
内部联接。你试过什么?我确实很难想出该试什么。我已经15年没有做过任何SQL了,所以我不记得如何做所有的内部连接。我只记得非常基本的SQL,比如选择、更新和插入。好的,谢谢你的帮助。现在我知道了做这件事的基本原理,但这部分肯定有问题:“[Sum]=s.Points*s.Weight”。至少对我来说,“[Sum]”的标题是“Expr 1004”,列中的每个值都有“0”。我认为您提出的方法是正确的,但由于某些原因,出现了一些问题。除此之外,“Points”和“Weight”列正在添加到“MainTable”中,因此该部分运行良好。
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