更新:很抱歉造成混乱。“表”不是我的实际表名,我已经用正确的名称更新了它,还提供了有关以下错误的更多信息。
我有一个名为 TrackingNumbers 的表,有两列。orderid 列数据有时会重复,因为每个订单有多个发货(我没有设计数据库):
orderid shipment_cost
1021 5.34
1021 7.83
1022 5.19
1023 5.59
当 orderid 使用 SQL 查询重复时,如何添加所有 shipping_cost 值?所以我希望查询结果看起来像:
orderid shipment_cost
1021 13.17
1022 5.19
1023 5.59
我最好的猜测是它是这样的:
SELECT orderid, SUM(shipment_cost) FROM TrackingNumbers GROUP BY orderid
但这给了我一个未指定的 SQL 错误。不确定这是我的查询还是愚蠢的专有应用程序。感谢您的任何建议!
更新2:所以根据答案,我的查询似乎没问题,我也只是在我自己的MySQL服务器上仔细检查过,回来没问题。这一定是应用程序的错(Volusion)。他们有一个用于运行自定义报告的糟糕的小界面,它似乎用额外的东西包装了我的 SQL 查询。Volusion的错误:
SQL Error: SELECT * ,17041 as RecordCount
FROM (SELECT TOP 10 *
FROM (SELECT TOP 10 orderid, SUM(shipment_cost)
FROM TrackingNumbers
GROUP BY orderid ORDER BY )
SUBSEL ORDER BY )
PAGESEL ORDER BY
如果我添加一个 ORDER BY 之类的
SELECT orderid, SUM(shipment_cost)
FROM TrackingNumbers
GROUP BY orderid
ORDER BY orderid ASC
因为这似乎是它想要的:
SQL Error: SELECT * ,17041 as RecordCount
FROM (SELECT TOP 10 *
FROM (SELECT TOP 10 orderid, SUM(shipment_cost)
FROM TrackingNumbers
GROUP BY orderid
ORDER BY orderid ASC)
SUBSEL ORDER BY orderid DESC )
PAGESEL ORDER BY orderid ASC
我想我将不得不看看 Volusion 的支持是否能提供任何线索。再次感谢!
更新 3 :当然 Volusion 支持是没有帮助的,即使我告诉他们这个查询可以在另一个 SQL 服务器上工作,而且很明显他们的界面正在破坏它。看起来我将不得不将数据导入我的数据库并在那里进行操作。