【发布时间】:2021-11-15 16:07:34
【问题描述】:
我有几个属于不同组的项目,有些是未知组。 我需要按日期计算每个组的总和。 我只是在 SQL 下尝试,但仍然不是我想要的:
with A as (
SELECT PG, EMANAGER_DATE,
CASE WHEN (EMANAGER_DATE = '2021-09') THEN SUM(NET_VALUE_USD) ELSE 0 END AS "2021-09",
CASE WHEN (EMANAGER_DATE = '2021-10') THEN SUM(NET_VALUE_USD) ELSE 0 END AS "2021-10",
CASE WHEN (EMANAGER_DATE = '2021-11') THEN SUM(NET_VALUE_USD) ELSE 0 END AS "2021-11",
CASE WHEN (EMANAGER_DATE = '2021-12') THEN SUM(NET_VALUE_USD) ELSE 0 END AS "2021-12"
FROM table1
GROUP BY PG, EMANAGER_DATE
)
select PG, max("2021-09") AS "2021-09", max("2021-10") AS "2021-10", max("2021-11") AS "2021-11", max("2021-12") AS "2021-12" from A GROUP BY PG
数据库:SAP HANA
数据:
| Item | PG | NET_VALUE_USD | EMANAGER_DATE |
|---|---|---|---|
| 1 | 1 | 100 | 2021-09 |
| 2 | 1 | 200 | 2021-10 |
| 3 | 2 | 300 | 2021-09 |
| 4 | 2 | 400 | 2021-09 |
| 5 | 3 | 500 | 2021-09 |
| 6 | 3 | 200 | 2021-11 |
| 7 | 3 | 300 | 2021-11 |
| 8 | 900 | 2021-09 |
预期结果:
| PG | 2021-09 | 2021-10 | 2021-11 |
|---|---|---|---|
| ? | 900 | 0 | 0 |
| 1 | 100 | 200 | 0 |
| 2 | 700 | 0 | 0 |
| 3 | 500 | 0 | 500 |
| total | 2200 | 200 | 500 |
【问题讨论】:
-
看起来有时它们的值被添加,有时它们被重置。这是什么逻辑?
-
我更新了我的数据,它们的值被添加了。
-
我认为如果您在问题中添加一些文本会是个好主意。它有点像一个无法解释的 Jira-ticket,而不是 Stack Overflow 问题。
-
你需要这个预期的结果吗?它是要显示的,还是要存储在某个地方的?你还尝试了什么?
-
待展示。