如何解决比较每个月并为增量添加行
我需要你的帮助,我无法构建正确的解决方案。
我有这张桌子:
日期 | 单位 | 货币 |
---|---|---|
01.02.2021 | TSS | 美元 |
01.03.2021 | TSS | 美元 |
01.04.2021 | TSS | 美元 |
01.02.2021 | UMM | 美元 |
01.02.2021 | FDS | 美元 |
01.04.2021 | FDS | 美元 |
01.02.2021 | POF | 美元 |
与第一个月 01.02.2021 相比,我需要为每个月的每个缺失的 UNIT 填充行,例如 UNIT“TSS”。
预期结果:
日期 | 单位 | 货币 |
---|---|---|
01.02.2021 | TSS | 美元 |
01.03.2021 | TSS | 美元 |
01.04.2021 | TSS | 美元 |
01.02.2021 | UMM | 美元 |
01.03.2021 | UMM | 美元 |
01.04.2021 | UMM | 美元 |
01.02.2021 | FDS | 美元 |
01.03.2021 | FDS | 美元 |
01.04.2021 | FDS | 美元 |
01.02.2021 | POF | 美元 |
01.03.2021 | POF | 美元 |
01.04.2021 | POF | 美元 |
所有比较都应与第一个月 01.02.2021
解决方法
您的结果包含第一列 date
的所有组合以及其他两列 unit
/currency
的所有组合。使用cross join
:
select d.date,uc.unit,uc.currency
from (select distinct date from t) d cross join
(select distinct unit,currency from t) uc
order by uc.unit,uc.currency,d.date;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。