gpt4 book ai didi

mysql - 将具有 1 到 N 关系的表合并为 1 行记录,并使用 N 条记录的最后一个值

转载 作者:行者123 更新时间:2023-11-29 23:26:59 25 4
gpt4 key购买 nike

我需要修改我之前的帖子如何将具有一对多关系的表组合成1行记录

how to combine tables with 1 to many relationship into 1 line of record

现在我的问题是我的记录现在有一对多的关系。我需要显示的只是最后一条记录并将其组合在一行中表 tbl_equipment 和 tbl_warranty

enter image description here

这是所需的输出 enter image description here

这是我要实现的代码

 SELECT
a.equipmentid,
a.codename,
a.name,
a.labelid,
a.ACQUISITIONDATE,
a.description,
a.partofid,
w1.warrantyid as serviceidwarranty,
w1.startdate,
w1.enddate,
w2.warrantyid as productidwarranty,
w2.startdate,
w2.enddate,
s.equipstatusid,
l.equiplocationid FROM TBL_EQUIPMENTMST a
left JOIN tbl_equipwarranty w1
ON w1.equipmentid=a.equipmentid and w1.serviceproduct = 'service'
left JOIN tbl_equipwarranty w2
ON w2.equipmentid=a.equipmentid and w2.serviceproduct = 'product'
left join tbl_equipstatus s
on a.equipmentid = s.equipmentid
left join tbl_equiplocation l
on a.equipmentid = l.equipmentid WHERE a.equipmentid = '112'

我只想在输出中显示 1 条记录,其中包含保修产品和保修服务的最后一个值。任何人都可以指导我如何修改我的代码,以便当我尝试加入上面列出的所有表时只能生成 1 条记录,并将最后一条保修记录作为输出。我使用 Firebird 作为数据库。如果您在 mysql 中有解决方案,请告诉我,我会尝试在 firebird 中找到对应的解决方案。

最佳答案

with summary as(
select e.equipmentid ,e.Codename,e.Name,w.warrantyid ,w.Satartdate ,w.Enddate,w.warrantytype
from Eqp e
join Warranty w
on(w.equipmentid =e.equipmentid )
where w.warrantyid =3)

select *,w.warrantyid,w.Satartdate ,w.Enddate,w.warrantytype
from summary s
join Warranty w
on s.Satartdate =w.Satartdate and s.Enddate =w.Enddate
where w.warrantyid =4

关于mysql - 将具有 1 到 N 关系的表合并为 1 行记录,并使用 N 条记录的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882396/

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