【发布时间】:2019-08-13 08:25:27
【问题描述】:
我正在尝试仅根据另外 3 列中的唯一 ID 集获取 1 行。在我的数据库中,对于其他 3 列(例如,您可以想象产品编号)中的每个唯一 ID 集,每个日期都有许多 记录。库存状态仅按日期(更改)发布,而不是作为数量的一个最终编号。因此,获取实际库存状态的唯一方法是使用最新日期检查最新的库存状态更新 - 始终根据给定的产品 ID 组合最顶行。
这就是我的桌子现在的样子:
Code1 Cde2 Code3 Date Stock status
arti-cd-base arti-cd-sfx adfc-cd-diffco stof-dt stof-qty-op
------------ ----------- -------------- ---------- -----------
1 15 0 2019-08-31 200
1 15 0 2019-08-25 290
2 16 2 2019-08-28 100
2 16 2 2019-08-26 80
2 16 2 2019-08-21 200
3 18 25 2019-08-18 75
这就是我希望它看起来的样子 - 每个 arti-cd-base、arti-cd 组合仅显示具有最新日期 (stpf-dt) 和库存状态 (stof-qty-op) 的行-sfx 和 adfc-cd-diffco。
Code1 Cde2 Code3 Date Stock status
arti-cd-base arti-cd-sfx adfc-cd-diffco stof-dt stof-qty-op
------------ ----------- -------------- ---------- -----------
1 15 0 2019-08-31 200
2 16 2 2019-08-28 100
3 18 25 2019-08-18 75
顶部的列 ID 连续如下:
Code1 Code2 Code3 Date - Stock status
│ arti-cd-base │ arti-cd-sfx │ adfc-cd-diffco │ stof-dt │ stof-qty-op │
是否有任何可能的方式通过 SQL 来实现这一点?我找到了一个仅通过命令显示一行的选项:“偏移 0 行仅获取前 1 行”,但是这仅显示 1 行,但不尊重其他三列中给出的一组产品 ID 中的一行( arti-cd-base、arti-cd-sfx 和 adfc-cd-diffco)。有人能看穿吗?
【问题讨论】:
-
基本上,根据最新日期考虑 Code1 + Code2 + Code3 就足够了......并且只显示该最新日期的一个值。应遵循数量值。
-
这里的大多数人都希望样本表数据和预期结果为格式化文本,而不是图像(或图像链接)。
-
没问题,每行数据前加4个空格即可:)
标签: sql oracle ms-query excelquery