我 想 获取 表 中 每个 组 的 最 新 数据 和 原始 数据 , 但 有 一 组 条件 。
下面 是 数据 集/表 的 当前 结构 。
- 每个 组 可以 有 多 个 项目
- 每个 item _ id 可以 有 相同 的 item _ name , 这些 称为 change item _ names , 但 有 一 个 显著 的 区别 , 即 ( ) 。
- 每个 item _ id 可以 有 多 个 状态 , 但 在 下面 的 示例 中 , 它 被 简化 为 只有 两 个 状态 : " 草稿 " - 〉 " 已 批准 " 。
| 组 群|日期|项目 标识|项目 名称|状态|标价|股票|
| - -| - -| - -| - -| - -| - -| - -|
| A 级|2022 年 1 月 1 日|36FG - 34 - 45 型 发动 机|异 丙 肾上腺 素|草稿|十五|100 个|
| 乙|2022 年 1 月 2 日|28AE - 23 - 67 年|异 丙 肾上腺 素|已 核准|三十|一百 二十|
| A 级|2022 年 1 月 5 日|1999 年 12 月 45 日|去 甲 肾上腺 素|已 核准|二十 个|三百|
| C 语言|2022 年 1 月 7 日|1988 年 12 月 14 日|异 丙 肾上腺 素|草稿|10 个|五百 个|
| 乙|2022 年 1 月 5 日|45AB - 16 - 77 型 发动 机|CD - 4567 ( 一 种 )|草稿|三十五|二百|
| A 级|2022 年 1 月 3 日|76JJ - 98 - 66 型|苯 并 咪唑|已 核准|五十 个|二百 五十|
| A 级|2022 年 2 月 2 日|17KL - 10 - 43 型|苯 并 咪唑 -1234|草稿|十二|四百|
| C 语言|2022 年 3 月 3 日|97EE - 42 - 17 型 发动 机|阿 司 替 尼|已 核准|二十五 个|四百 五十|
所 需 输出 :采用 每个 组 的 最 新 item _ id & 当 涉及 更改 流程 且 状态 不 等于 " 批准 " 时 , 则 采用 每个 组 已 批准 的 最 新 item _ id 。
还要 注意 的 是 , 它 不 一定 是 每个 组 中 第 二 个 最近 获得 批准 的 记录 , 可以 在 时间 表 和 流程 中 更 早 地 进行 。
| 组 群|日期|项目 标识|项目 名称|状态|标价|股票|原始 项目 标识|原始 项目 名称|原始 状态|原价|原始 库存|
| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -| - -|
| A 级|2022 年 2 月 2 日|17KL - 10 - 43 型|苯 并 咪唑 -1234|草稿|十二|四百|76JJ - 98 - 66 型|苯 并 咪唑|已 核准|五十 个|二百 五十|
| 乙|2022 年 1 月 5 日|28AE - 23 - 67 年|CD - 4567 ( 一 种 )|草稿|三十五|二百|45AB - 16 - 77 型 发动 机|异 丙 肾上腺 素|已 核准|三十|一百 二十|
| C 语言|2022 年 3 月 3 日|97EE - 42 - 17 型 发动 机|阿 司 替 尼|已 核准|二十五 个|四百 五十|空 值|空 值|空 值|空 值|空 值|
1条答案
按热度按时间dxxyhpgq1#
组A的示例输出显示原始项目名称(该组中已批准的最新项目名称)为DE-1234(1)。其日期为1/3/2022,但项目名称DE-1234的日期为1/5/2022,这使其成为组A中已批准的最新项目标识。因此,对于该参考,我的输出与您的不同。
这里有一个到SQL Fiddle的链接,我在那里重新创建了这个。
下面是我为此创建的查询:
首先,我们创建一个CTE,按组对项目进行排序,以获取每组的最新信息。
然后,我们将CTE过滤为仅批准的CTE,并重新排序以获得最近批准的组。
最后,我们查询cte 2筛选,仅查找最近批准的记录