希望你们都做得很好! :D
我需要您的帮助来完成以下任务:
我需要创建下表:
日期 | 从新交易中获得的收入 | 因流失而损失的收入 | 追加销售获得的收入 |
---|---|---|---|
2022 年 1 月 1 日 | 1000 美元 | -$500 | 1000 美元 |
2022 年 1 月 2 日 | $2000 | -$200 | $2000 |
这里的情况是,为了收集和聚合这些数据,我需要获取 3 个不同的表:
交易、流失和追加销售
交易表:
交易 | 截止日期 | 赢得的收入 |
---|---|---|
交易#1 | 2022 年 1 月 1 日 | $500 |
交易#2 | 2022 年 1 月 1 日 | $500 |
交易 #3 | 2022 年 1 月 2 日 | $1500 |
交易#4 | 2022 年 1 月 2 日 | $500 |
流失表:
流失 | 截止日期 | 收入损失 |
---|---|---|
流失#1 | 2022 年 1 月 1 日 | -$500 |
流失#2 | 2022 年 1 月 2 日 | -100 美元 |
流失#3 | 2022 年 1 月 2 日 | -100 美元 |
加售表:
追加销售 | 截止日期 | 赢得的收入 |
---|---|---|
追加销售#1 | 2022 年 1 月 1 日 | $2000 |
追加销售 #2 | 2022 年 1 月 1 日 | -1000 美元 |
追加销售#3 | 2022 年 1 月 2 日 | $2000 |
第一个问题是: 如何创建 SQL 命令来完成此操作?
提前致谢。
您可以使用子查询对流失表和追加销售表进行聚合。
如下所示:
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=0875563c9ab7f9385711dde21cd98b47 一个>
请不要将日期存储为文本,您将面临很多困难。如果你想格式化日期,你可以使用 DATE_FORMAT
注意。如果交易表中存在其他日期,而其他两个表中不存在,则会从结果中过滤掉该日期。如果您想要它,请使用
LEFT JOIN
而不是INNER JOIN
。**编辑
https://dbfiddle.uk/S61QeLBX