更新并选择表连接

sg2wtvxw  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(303)

这个问题已经存在

access sql:语法错误(缺少运算符)
两年前关门了。
我的任务是:选择所有有利可图的航班。 transportation 是航班的一般信息。 ticket 包括有关门票数量及其成本的信息。那么,如何连接呢 UPDATE 以及 SELECT 表,以便仅查找具有 profit 大于0。 UPDATE table应该先放因为 profit 字段为空

UPDATE transportations
set profit =((transportations.ticket.cost* 
(transportations.ticket.sold_q+transportations.ticket.booked_q))-(0.2* 
transportations.plan_oil))
WHERE profit is null

SELECT profit FROM transportations
WHERE profit >0
ORDER BY profit
8hhllhi2

8hhllhi21#

保存计算数据通常是不可取的。您似乎正在使用一个多值字段。如何保存每张机票的利润计算?为每个航班记录节省利润需要汇总机票计算。使用更新保存聚合数据将导致“不可更新”错误。
如果要返回每张票的利润计算值,并且只返回那些大于0的值,请尝试:

SELECT *, (ticket.cost * (ticket.sold_q + ticket.booked_q))-(0.2* plan_oil) AS Profit
FROM transportations
WHERE (ticket.cost * (ticket.sold_q + ticket.booked_q))-(0.2* plan_oil) > 0;

如果您想考虑每个航班的总利润,请尝试:

SELECT FlightID, Sum((ticket.cost * (ticket.sold_q + ticket.booked_q))-(0.2* plan_oil)) AS Profit
FROM transportations
GROUP BY FlightID
HAVING Sum((ticket.cost * (ticket.sold_q + ticket.booked_q))-(0.2* plan_oil)) > 0;

相关问题