【发布时间】:2021-03-10 18:00:29
【问题描述】:
我正在尝试根据日期比较表 1 和表 2,并根据它们的生成年份收集数据。这里的问题是,我还想从表 1 中捕获不匹配的 id 以及它们与表 2 的区别。
table_1
| id | finace_num | date_old | data_IDENTITY |
|---|---|---|---|
| A | 880 | 2020 | 5699 |
| H | 4580 | 2019 | 5694 |
| X1 | 5903 | 2003 | 9Rt56 |
| Y | 5555 | 2020 | 99333 |
| J1 | 9999 | 2020 | 33333 |
table_2
| id | address | date_new |
|---|---|---|
| X | US | 2019 |
| A | US | 2020 |
| Y1 | UK | 2020 |
| Y2 | - | 2020 |
| A3 | NA | 2019 |
| X1 | - | 2003 |
| X1 | - | 2003 |
输出
| Year | Id count in table 1 | Id count in table 2 | table 1 id that is missing in table 2 |
|---|---|---|---|
| 2020 | 3 | 3 | 2 |
| 2019 | 1 | 2 | 2 |
| 2003 | 1 | 2 | 0 |
-
这里有 2020 年的 3 个记录,在 table_1 和 table_2 中。由于表 1 和表 2 中只有一条记录匹配 (id: A),因此我计算缺失 id 的数量并将其添加到最后一个字段。
-
在第二条记录中,table_1 中有 2019 条记录,table_2 中有 2 条记录。由于 table1 中的 id 与表 2 中的 id 不匹配,我将丢失的 id 即 2 的计数添加到最后一个字段中。
到目前为止我尝试的是
select table_1.date_old,
count(table_1.id) over ( partition by table_1.date_old ) as [Id count in table 1],
count(table_2.id) over ( partition by table_1.date_old ) as [Id count in table 2]
from
table_1, table_2
在这一点上,来自开发社区的任何建议都会对我很有帮助!提前多谢了
【问题讨论】:
-
有什么尝试?你在哪里卡住了?您需要向我们展示您的尝试。
-
因为我的尝试甚至没有接近结果,所以我克制了发布。我已经编辑了主题以包含我现在尝试的内容。
-
了解您如何解决问题总是有帮助的,它不仅可以阐明问题,还可以阐明您需要什么帮助。
标签: sql sql-server