【发布时间】:2021-12-27 12:26:42
【问题描述】:
我有这个关系数据模型
product_table
| ID | type | configurable_product_id |
|---|---|---|
| 1 | CONFIGURABLE | null |
| 2 | SIMPLE | 1 |
| 3 | SIMPLE | 1 |
| 4 | SIMPLE | 1 |
product_source
| ID | product_id | quantity |
|---|---|---|
| 1 | 2 | 50 |
| 2 | 3 | 20 |
| 3 | 4 | 10 |
包含产品列表的表格,有两种类型:可配置和简单。简单产品链接到可配置产品。 包含不同产品数量的 product_source 表。 我想通过以下方式查询以检索产品的所有数量: 如果是可配置产品,那么数量是简单产品数量的总和 如果是简单产品,那么它只是简单产品的数量。
这是使用上述数据的预期结果:
结果
| product_id | quantity |
|---|---|
| 1 | 80 |
| 2 | 50 |
| 3 | 20 |
| 4 | 10 |
你知道如何进行吗?
暂时想到了这种类型的请求,但不知道如何完成'CONFIGURABLE'案例
SELECT
pr.id,
pr.type,
pr.configurable_product_id,
CASE
WHEN (pr.type = 'SIMPLE') THEN ps.quantity
WHEN (pr.type = 'CONFIGURABLE') THEN (????)
END AS quantity
FROM public."product" as pr
LEFT JOIN public."product_source" as ps
ON ps.product_id = pr.id
【问题讨论】:
标签: sql postgresql join sum