c# - SQL 从其他表中获取匹配值并显示在主表中

标签 c# sql ms-access

我正在尝试使用 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/

相关文章:

php - 使用 php 与 mysql 嵌套选择查询混淆

php - PHP 中不区分大小写的查询不起作用

c# - 如何将项目添加到队列的前面?

c# - 执行我的 javascript 后页面重新加载,我不希望它这样做

c# - 如何从未经检查的异常中恢复?

c# - 将项目添加到字典会导致 NullReferenceException

php - MySQL/PHP更新查询错误

vba - 如何在VBA中获取RecordSet的行

sql-server - 从 vba 调用 MS SQL Server 标量 UDF

sql - 仅当 Access 2007 中不存在时才添加记录