如何将多个sql记录转换为一个新的单个记录?

nnt7mjpx  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(308)

我需要处理一些日志,我意识到它们保存在多个sql记录中。例如:

如你所见,对于同一个“tro\u idordre”,我有不同的“tro\u typetrc”,所以日期也不同。我知道每一个“tro\u typetrc”都有特定的含义。例如:
1:创建任务
2:任务开始
4:任务结束等。
问题是不是每个任务都有相同数量的线路。它可以创建而从不启动,也可以启动然后取消。
因此,我想知道是否有一种方法可以将我的所有表转换为一个新表:
订单id
创建日期
开始日期
结束日期
取消了(是/否)
取消日期
谢谢

wsewodh2

wsewodh21#

可以使用条件聚合:

select TRO_IdOrdre,
       max(case when TRO_TypeTrc = 1 then tro_date end),
       max(case when TRO_TypeTrc = 2 then tro_date end),
       max(case when TRO_TypeTrc = 6 then tro_date end),
       max(case when TRO_TypeTrc = 8 then tro_date end),
       coalesce(max(case when TRO_TypeTrc = 4 then 'Yes' end), 'No') as is_cancelled
from t
group by TRO_IdOrdre;

您可以填写列的名称。

相关问题