尝试将个人表加入情侣表,提供家庭ID,但不要使服务器超时

问题描述 投票:0回答:1

我有一张桌子,上面有伪造的个人税收记录,像这样(每个申报人一行):

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 | ...

sql sql-server-2014
1个回答
2
投票

将数据放在一行中更简单:

© www.soinside.com 2019 - 2024. All rights reserved.