2

我正在处理一个 SQL 查询,其中最终结果是使用表 1 和表 2 在其中包含一个总和的列。

表 1:成员:

    Level
    Individual
    Super

表 2: MLevel:

    Level . . . . . Fee
    Super . . . . . 700
    Individual .. . 400

为第 1 列中的水平赋予价值:700 + 400 + 700 = 1800

期望的结果:

    Total . . . . . 1800

我的代码:

第一次代码尝试:

SELECT SUM(Members.Level) as TotalRevenue
FROM MLevel 
INNER JOIN Members ON Members.Level = MLevel.Level

结果:条件表达式中的数据类型不匹配

第二次代码尝试:

SELECT SUM(MLevel.Fee) as TotalRevenue
FROM MLevel 
INNER JOIN Members ON MLevel.Level= Members.Level

结果:弹出框(输入MLevel.Fee的参数值)

所有代码结果都是错误的。我将如何修复此代码以使输出为 1800?

4

2 回答 2

0

只需对表 2 中的费用列进行总和

所以别名第二个表然后在您的 sum 语句中引用 alias.columnName

于 2012-04-09T13:29:50.017 回答
0

这将取决于表结构和数据类型,但我刚刚测试了以下内容MS Access 2003并使用以下内容:

Members table:
Level
Individual
Super

MLevel Table:
Level       Fee
Super       700
Individual  400

SELECT SUM(MLevel.Fee) as TotalRevenue
FROM MLevel 
INNER JOIN Members ON Members.Level = MLevel.Level

使用查询给了我 1100 的总和,因为我在成员中只有 2 个条目,添加更多会正确增加总和。

您的第一个查询将不起作用,因为 上的数据类型Members.Level是文本字段,因此您得到数据类型不匹配,因为成员中的级别不是数字。

SELECT SUM(Members.Level) as TotalRevenue
FROM MLevel 
INNER JOIN Members ON Members.Level = MLevel.Level
于 2012-04-09T14:03:55.167 回答