我一直在尝试让这个 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/