【发布时间】:2021-04-02 14:03:54
【问题描述】:
我有 3 张桌子:
采购订单
| PO ID | PO Requestor |
|---|---|
| PO123 | John Snow |
| PO567 | Heather |
采购订单行项目:
| PO Line Item ID | PO Line Item | PO ID | Ordered Quantity |
|---|---|---|---|
| 1234 | Bike | PO123 | 3 |
| 1235 | Laptop | PO567 | 2 |
| 1236 | BMW | PO123 | 1 |
和收据:
| Receipt Line ID | PO Line Item ID | Received Quantity | Received Date |
|---|---|---|---|
| R123 | 1234 | 1 | 01-Dec-20 |
| R567 | 1236 | 1 | 15-Dec-20 |
| R567 | 1234 | 2 | 15-Dec-20 |
| R987 | 1235 | 2 | 20-Dec-20 |
我想将 3 个表加入 1 个表,如下所示,这不是一项具有挑战性的任务:
| PO ID | PO Line Item No | PO Line Item Name | Ordered Quantity | Receipt Line ID | Received Quantity | Received Date | Requestor |
|---|---|---|---|---|---|---|---|
| PO123 | 1 | Bike | 3 | R123 | 1 | 01-Dec-20 | John Snow |
| PO123 | 1 | Bike | 3 | R567 | 2 | 15-Dec-20 | John Snow |
| PO123 | 2 | BMW | 1 | R567 | 1 | 15-Dec-20 | John Snow |
| PO567 | 1 | Laptop | 2 | R987 | 2 | 20-Dec-20 | Heather |
在决赛桌中,我想添加一个新列:PO Line Item No。基本上,如果组 PO ID 相同,它将为每个 PO Line Item ID/Name 分配一个增量值。请注意,由于 1 个 PO Line Item 可以分为多个收货日期和行,因此最终表格可能包含同一 PO Line Item 的多行。在这种情况下,订单行项目编号应在最终表格中为这些记录显示相同的值
例如,PO123 有 2 个订单行项目:数量为 3 的自行车 (ID 1234) 和数量为 1 的 BMW (ID 1236)。在 2020 年 12 月 1 日,收到了 1 辆自行车,收据 ID 为 R123,在 15 -2020 年 12 月,收据 ID R567 收到 BMW 和其他 2 辆自行车以完成 PO123。所以在决赛桌中,因为在 2 个收据中收到了自行车,所以 PO123 有 2 条 Bike 记录。自行车的订单行项目编号应相同
请帮助我在不使用任何 Windows 功能的情况下处理此专栏。非常感谢
【问题讨论】:
-
请以文本而不是图片链接的形式提供您的数据。也请向我们展示您到目前为止所做的尝试。
-
目前,这篇文章读起来像是一个规范,而不是一个问题。
标签: mysql sql subquery window-functions