gpt4 book ai didi

sql - 棘手的逻辑-SQL、Teradata

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:50 25 4
gpt4 key购买 nike

我试图解决一个棘手的问题。表 A1:有 4 列。而且这张表每 2 天更新一次。

id    name  fav_color  date
2051 joe white 07/21
2052 John green 07/21

2 天后记录更新,表 A1 如下所示。

id    name  fav_color  date
2051 joe blue 07/23
2052 Rick green 07/23

表 A2:这是一个历史表,它捕获对 表 A1 所做的所有更改。

id    updated_column   update_dt  old_value  new_value
2051 fav_color 07/23 white blue
2052 Name 07/23 John Rick

现在业务希望在月底之前查看表 A1 的每月快照。基本上我想要这样的月度快照。

id    name  fav_color  date
2051 joe white 07/21
2051 joe blue 07/23
2052 John green 07/21
2052 Rick green 07/23

请告诉我如何实现这一目标。

最佳答案

SELECT id,name,fav_color,date
FROM tableA1

UNION ALL

SELECT tableA2.id,
CASE WHEN tableA2.updatedColumn ='name'
THEN tableA2.oldValue
ELSE tableA1.name END,
CASE WHEN tableA2.updatedColumn ='fav_color'
THEN tableA2.oldValue
ELSE tableA1.fav_color END,
tableA2.update_dt
FROM tableA2
INNER JOIN tableA1 ON tableA2.id=tableA1.id
ORDER BY id

关于sql - 棘手的逻辑-SQL、Teradata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31602270/

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