gpt4 book ai didi

mysql - 仅比较最新记录

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

我想创建一个触发器,如果​​满足条件,则将新记录更新到第二个表

TableA

#ID,animalid,calvdate,lactation
1,animal1, 2016-03-15,1
2,animal1, 2017-06-09,2

TableB
#animalid, calvdate, milkmorning, milkevening
animal1,2017-07-09,2,2
animal1,2018-08-27,3,3

我想将新的正确的 Calvdate 更新到表中。以下是我的查询

SELECT animalid,calvdate,lactation FROM tableB
inner join tableA on tableB.animalid = tableA.animalid
where TO_DAYS(tableA.calvdate) -TO_DAYS(tableB.calvdate) > 400
group by animalid and calvdate

Expected Output

#ID,animalid,calvdate,lactation
1,animal1, 2016-03-15,1
2,animal1, 2017-06-09,2
3,animal1, 2018-08-27,3

注意:哺乳必须自动生成

预期输出有 3 条记录,因为新的 calvdate 与上一个 calvdate 相比满足条件并且大于 400 天

最佳答案

我在这里假设了一些事情。

1.每个动物ID的哺乳期将分别递增。2.只需与每个动物ID中的最新产犊日期进行比较,如果差异大于400天,则插入B中的记录。

<insert into A>
SELECT B.animalid,B.calvdate,init.lactation
FROM
(SELECT MAX(calvdate) as calvdate, animalid FROM tableB GROUP BY animalid) B
left join
(SELECT MAX(calvdate) as calvdate, MAX(lactation) + 1 as lactation, animalid FROM tableA GROUP BY animalid) init
on
B.animalid = init.animalid
AND DATEDIFF(B.calvdate,init.calvdate) > 400
WHERE init.animalid IS NOT NULL

您可以在此处查看 SQL Server 模拟:https://rextester.com/BLT38001

关于mysql - 仅比较最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55611286/

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