我有一张桌子,上面有伪造的个人税收记录,像这样(每个申报人一行):
T1:
+-------+---------+---------+
| Person| Spouse | Income |
+-------+---------+---------+
| 1 | 2 | 34000 |
| 2 | 1 | 10000 |
| 3 | NULL | 97000 |
| 4 | 6 | 11000 |
| 5 | NULL | 25000 |
| 6 | 4 | 100000 |
+-------+---------+---------+
我有第二张桌子,上面有税收“家庭”,单身或已婚夫妇(每个税收“家庭”一行)。
T1_Family:
+-------- -+-------+---------+
| Family_id| Person| Spouse |
+-------- -+-------+---------+
| 2 | 2 | 1 |
| 3 | 3 | NULL |
| 5 | 5 | NULL |
| 6 | 6 | 4 |
+------ ---+-------+---------+
[家庭 =一对夫妇中的max(人)
例如,将两个人合并的想法是将一个税收家庭中的两个人的收入相加(总计家庭水平)。>>
所以,我尝试了以下方法:
select * into family_table from ( (select * from T1_family)a join (select * from T1)b on a.family = b.person **or a.spouse = b.person** ) where family_id is not null and person is not null
[我应该得到的(当我选择1对随机夫妇时我得到的是)是每个人一行,然后我可以按family_id进行分组,并对收入,退休金供款等进行分组。但是在连接表之前,SQL超时了。以粗体显示的部分是使过程变慢的原因,但我不确定还有其他操作。
是否有更简单的方式按家庭分组?
我有一张桌子,上面有伪造的个人税收记录,像这样(每个申报人一行):T1:+ ------- + --------- + --------- + |人|配偶|收入| + ------- + --------- + --------- + | 1 | 2 | ...
将数据放在一行中更简单: