【发布时间】:2021-01-18 20:30:24
【问题描述】:
我有以下表格: 车辆:
- VID 主键
- Reg_no
- 日期
- 初始里程
里程
- MID 主键
- Reg_no 外键
- 日期
- Miles_covered
- To_service
- 总计
我想要的是对里程表中外键的最后一行求和(总计)。
在这种情况下,查询求和 MID 7 和 MID 19
我尝试过的:
SELECT SUM(Mileage.Total) Totals
FROM (
SELECT *
FROM Mileage
INNER JOIN Vehicles on Mileage.Registration_No=Vehicles.Registration_No
ORDER BY Mileage.MID DESC Limit 1
) SUB
ORDER BY Mileage.MID ASC;
我收到错误 1060
我做错了什么,我该怎么做?
【问题讨论】:
-
请以文字形式发布表格数据,而不是图片。
-
"我想要的是对里程表中最后一行外键求和(Total)..." -- 你如何定义最后一行?由于存在重复值,因此日期不够好。
-
另外请发布错误描述。没有人记得所有的错误代码
-
您使用了短语last row。问题是,SQL 表是无序的行集。除非您指定它们,否则不存在 first 和 last 的概念。 最后一行是什么意思?具有最大 MID 主键的那个?日期?里程?请edit您的问题。
标签: mysql sum subquery inner-join greatest-n-per-group