SQL内部连接总和(引用另一列)

时间:2012-04-09 13:22:22

标签: sql ms-access

我正在研究一个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?

2 个答案:

答案 0 :(得分:0)

只需对表2中的费用栏进行总结

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

答案 1 :(得分: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