gpt4 book ai didi

mysql - SQL-我需要按日期更新状态表中两列之间的差异的总计表。

转载 作者:行者123 更新时间:2023-11-29 07:34:53 24 4
gpt4 key购买 nike

在我当前的模式(如下)中,我需要使用 pc12_status 表中每个日期的 hobbs_end - hobbs_start 自动更新 pc12_totals 表。我不确定要使用哪种类型的连接以及如何在 sql 中减去。

CREATE TABLE  pc12_status (hobbs_start decimal(5,2) NOT NULL, 
hobbs_end decimal(5,2) NOT NULL PRIMARY KEY,
landings int(5) NOT NULL,
engine_cycles int(5) NOT NULL,
flight_date date NOT NULL);

INSERT INTO pc12_status VALUES (1.2, 1.7, 6, 2, "1987-12-17");
INSERT INTO pc12_status VALUES (1.7, 2.3, 2, 1, "1987-12-17");
INSERT INTO pc12_status VALUES (2.3, 3.4, 3, 1, "1987-12-18");

CREATE TABLE pc12_totals (flight_hours decimal (5,2) NOT NULL,
landings_total int (5) NOT NULL,
engine_cycles int(5) NOT NULL,
flight_date date NOT NULL PRIMARY KEY);

最佳答案

首先,您的 pc12_totals 没有任何标识列可以引用 pc12_status 表。因此,例如您需要 insert 语句而不是 update

insert into pc12_totals (flight_hours , landings_total , engine_cycles , flight_date)
select sum(hobbs_end - hobbs_start) flight_hours ,
sum(landings) landings_total, sum(engine_cycles) engine_cycles , flight_date
from pc12_status
group by flight_date

一旦 pc12_totals 获得数据,您就可以在 flight_date 之前执行 JOIN

update pc12_totals 
inner join
(
select sum(hobbs_end - hobbs_start) flight_hours ,
sum(landings) landings_total, sum(engine_cycles) engine_cycles , flight_date
from pc12_status
group by flight_date
) s on s.flight_date = t.flight_date
set t.flight_hours = s.flight_hours, ...

关于mysql - SQL-我需要按日期更新状态表中两列之间的差异的总计表。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49376059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com