sql - 在 SELECT 查询中使用 SQL 别名语句

标签 sql ms-access

我一直在尝试让这个 Access 查询工作,我正在学习编写 SQL,所以我想尝试为我的表使用别名以使其更易于使用,但由于某种原因我不断收到错误。这是我原来的 SQL 查询

SELECT qryCurrentMonthMtrHis.Utility
    ,qryCurrentMonthMtrHis.MeterID
    ,qryLastYearAvgMtrHis.AvgOfUnits AS LYRAvgOfUnits
    ,qryLastYearMtrHis.Units AS LYRUnits
    ,qryLastMonthMtrHis.Units AS PrevMonUnits
    ,qryCurrentMonthMtrHis.Units AS CurrentUnits
    ,qryLastYearAvgMtrHis.AvgOfTotCost
    ,qryLastYearMtrHis.TotCost AS LYRTotCost
    ,qryLastMonthMtrHis.TotCost AS PrevMonTotCost
    ,qryCurrentMonthMtrHis.TotCost AS CurrentTotCost
FROM qryLastYearMtrHis
RIGHT JOIN (
    qryLastYearAvgMtrHis RIGHT JOIN (
        qryLastMonthMtrHis RIGHT JOIN qryCurrentMonthMtrHis ON (qryLastMonthMtrHis.Utility = qryCurrentMonthMtrHis.Utility)
            AND (qryLastMonthMtrHis.MeterID = qryCurrentMonthMtrHis.MeterID)
        ) ON (qryLastYearAvgMtrHis.Utility = qryCurrentMonthMtrHis.Utility)
        AND (qryLastYearAvgMtrHis.MeterID = qryCurrentMonthMtrHis.MeterID)
    ) ON (qryLastYearMtrHis.Utility = qryCurrentMonthMtrHis.Utility)
    AND (qryLastYearMtrHis.MeterID = qryCurrentMonthMtrHis.MeterID);

这是我正在尝试使用别名做的事情

    SELECT cm.Utility
    ,cm.MeterID
    ,lyra.AvgOfUnits AS LYRAvgOfUnits
    ,lyr.Units AS LYRUnits
    ,pm.Units AS PrevMonUnits
    ,cm.Units AS CurrentUnits
    ,lyra.AvgOfTotCost
    ,lyr.TotCost AS LYRTotCost
    ,pm.TotCost AS PrevMonTotCost
    ,cm.TotCost AS CurrentTotCost
FROM qrylastYearMtrHis lyr
RIGHT JOIN (
    qryLastYearAvgMtrHis lyra RIGHT JOIN (
        qryLastMonthMtrHis pm RIGHT JOIN qryCurrentMonthMtrHis cm ON (lyr.Utility = cm.Utility)
            AND (pm.MeterID = cm.MeterID)
        ) ON (lyra.Utility = cm.Utility)
        AND (lyra.MeterID = cm.MeterID)
    ) ON (lyr.Utility = cm.Utility)
    AND (lyr.MeterID = cm.MeterID);

当我尝试运行第二个时,它显示“连接操作中的语法错误”并突出显示 lyra.AvgOfUnits 中的“lyr”。根据我在网上阅读的内容,它应该可以工作,所以我想知道是否有人可以提供任何见解?

最佳答案

您在联接中使用了错误的别名:

RIGHT JOIN (
    qryLastYearAvgMtrHis lyra RIGHT JOIN (
        qryLastMonthMtrHis pm RIGHT JOIN qryCurrentMonthMtrHis cm ON (lyr.Utility = cm.Utility)

必须是pm.Utility而不是lyr.Utility

你没有使用搜索和替换吗?

关于sql - 在 SELECT 查询中使用 SQL 别名语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336135/

相关文章:

sql - 填补 SQL Server 中年份序列的空白

sql - 在连接中使用聚合函数时如何使用 Group By 子句?

sql - PostgreSQL 驱动程序在某些 SQL 语句上附加隐藏字符

sql - 在 Excel VBA 中选择 SQL 语句

sql - 如果存在重复项,则根据另一列选择值

ms-access:当我将扩展名更改为 ACCDR 表格/表格时消失

arrays - 删除后下标超出范围

c# - 如何使用 C# 最大化 Access 应用程序窗口?

MS Access 中的 SQL 查询变量

sql - 将数据从 Excel 插入或更新到 Access