Mysql 一选多和
我需要乘以DS单价和订单数量。然后,如果有多个LineTotal,则将其总和相加 从那里,取小计并乘以1.1税 10%的价格,并获得全部订单 我对小计有意见,但还是成功了。但无论我做什么,TotalPrice仍然给我0 这是我的疑问:Mysql 一选多和,mysql,sql,Mysql,Sql,我需要乘以DS单价和订单数量。然后,如果有多个LineTotal,则将其总和相加 从那里,取小计并乘以1.1税 10%的价格,并获得全部订单 我对小计有意见,但还是成功了。但无论我做什么,TotalPrice仍然给我0 这是我的疑问: SELECT *, SUM(DS.UnitPrice*Ord.Qty) AS LineTotal, SUM(LineTotal) AS SubTotal, SUM(SubTotal*1.1) AS TotalPrice
SELECT *,
SUM(DS.UnitPrice*Ord.Qty) AS LineTotal,
SUM(LineTotal) AS SubTotal,
SUM(SubTotal*1.1) AS TotalPrice
FROM (Orders Ord, Donuts DS, Customers Cust)
LEFT JOIN Customers ON (Cust.CustID = Ord.OrderID)
LEFT JOIN Donuts ON (DS.DonutID = Ord.DonutID)
你可以这样做:
SELECT *, SUM(DS.UnitPrice*Ord.Qty) as LineTotal ,SUM(LineTotal) as SubTotal,SUM(SubTotal*1.1) as TotalPrice
FROM (Orders Ord, Donuts DS, Customers Cust)
LEFT JOIN Customers ON (Cust.CustID = Ord.OrderID)
LEFT JOIN Donuts ON (DS.DonutID = Ord.DonutID)
不清楚是否需要按订单对小计或总计进行分组,但这里是查询。如果不需要分组,您可以删除GROUP BY子句: 按医嘱ID分组
问题是您在total的定义中引用的是列别名小计。而且,您的加入条件都是错误的 如果您想要每个订单的总计:
SELECT Ord.OrderId,
SUM(DS.UnitPrice * Ord.Qty) AS SubTotal,
SUM(DS.UnitPrice * Ord.Qty * 1.1) AS TotalPrice
FROM Orders Ord JOIN
Customers Cust
ON Cust.CustID = Ord.OrderID JOIN
Donuts DS
ON DS.DonutID = Ord.DonutID
GROUP BY Ord.OrderId;
如果需要所有订单的总计:
SELECT SUM(DS.UnitPrice * Ord.Qty) AS SubTotal,
SUM(DS.UnitPrice * Ord.Qty * 1.1) AS TotalPrice
FROM Orders Ord JOIN
Customers Cust
ON Cust.CustID = Ord.OrderID JOIN
Donuts DS
ON DS.DonutID = Ord.DonutID;
你想把每个单位的计算价格和小计一起计算吗?在您的查询中,LineTotal和SubTotal将是相同的内容为什么要将旧的逗号分隔的隐式联接与moder LEFT联接语法混合使用?非常混乱。为什么顾客和甜甜圈包含两次?请编辑您的问题,并提供示例数据和期望的结果。这一个和顶部的第一个答案帮助很大,我现在只需要弄清楚在哪里放置所需的select*,以获取有关订单的所有信息,客户和suchI现在已将所有信息发送给swho,并且总数显示正确,非常感谢所有人!选择*,SUMDS.UnitPrice*订单数量作为LineTotal,SUMLineTotal作为小计,SUMDS.UnitPrice*订单数量*1.1作为订单总价Ord加入客户Cust.CustID=Ord.OrderID加入DS.DonutID=Ord.DonutID组Ord.OrderID
SELECT SUM(DS.UnitPrice * Ord.Qty) AS SubTotal,
SUM(DS.UnitPrice * Ord.Qty * 1.1) AS TotalPrice
FROM Orders Ord JOIN
Customers Cust
ON Cust.CustID = Ord.OrderID JOIN
Donuts DS
ON DS.DonutID = Ord.DonutID;