【发布时间】:2021-06-10 04:34:33
【问题描述】:
第一次发帖,希望能得到一些帮助。
极少的编码经验,因此行话可能会令人困惑。
我正在尝试在 Zoho 中使用 SQL 来清理数据。
数据包括 A) 每份保单的交易数据(保费、费用、净收益) B) 索赔数据(发生的金额)
问题在于唯一标识符 - 同一个客户端可能有多个保单编号,其中 A) 或 B) 未存储在一起。 我一直使用的是系统自己的客户端代码(与策略编号不同),它将所有策略编号存储在同一客户端下。第二个问题是索赔数据未映射到此“客户代码”。 Excel index/match/vlookup 在此期间一直是我的首选并且运行良好,但是我们正在迁移到通过 SQL 运行的 Zoho。
例如
| Client Code | Policy Number | Premium | Claims |
| -------- | -------------- | -------- | ------ |
| C1 | 123 | 500 | 300 |
| C2 | 456 | 100 | |
| C1 | 767 | 0 | | <---
| | 767 | | 800 | <--- want these columns put all under C1
问题:如何使用 SQL 将左下角的空白填写为 C1,然后将每个客户(C1 和 C2)分组为他们的总保费和索赔金额?
目标:
| Client Code | Premium | Claims |
| -------- | --------- | ------ |
| C1 | 500 | 1100 |
| C2 | 100 | |
我考虑过使用 Self Join -
SELECT
t1."Client Code",
t1."Policy Number",
t1."Premium",
t1."Claims",
t2."Client Code"
FROM table1 as t1
FULL OUTER JOIN
(SELECT
"Policy Number",
"Client Code"
FROM table1) t2
ON t1."Policy Number" = t2."Policy Number"
这显然不起作用,更不用说当我尝试按保费包含总和时,我开始收到按条款分组的错误消息。
任何帮助将不胜感激。
结果:
| t1.Client Code | t1.Policy Number | t1.Premium | t1.Claims | t2.Client Code |
|---|---|---|---|---|
| C1 | 123 | 500 | 300 | C1 |
| C2 | 456 | 100 | C2 | |
| C1 | 767 | 0 | C1 | |
| C1 | 767 | 0 | ||
| 767 | 800 | C1 | ||
| 767 | 800 |
我已排除的其他要考虑的因素:保单年份、由于每月/每年付款而产生的更多交易数据等。
【问题讨论】:
-
您的文本表和 SQL 难以阅读,因此请对 SQL 使用单声道格式。并修复表格可能是降价错误。
-
300 去哪儿了?也就是说,为什么索赔是 800 而不是 1100?
-
嗨,戈登,抱歉,你是正确的,总数应该是 1100。@Strawberry 我很快就会尝试这个——最近才开始研究 SQL,因为 Zoho 不允许创建表函数(只选择)。