在两个不同的列中搜索和匹配索引,返回第三列的总和-Postgresql

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

我有一个名为“ tax_info”的表,该表存储了我市的地税信息,它看起来像这样:

taxpayer_code  |  condominium_num  |  lot_area  |  built_area
-------------------------------------------------------------
0010030078-2   |     00-0          |   143      |    130
0010030079-1   |     02-7          |   283      |    57
0010030080-1   |     02-7          |   283      |    48
0010030081-1   |     02-7          |   283      |    50

纳税人代码的前3个数字指的是市区,后3个数字指的是该区域内的街区,如果公寓编号为00-0,则后4个数字可以指的是该街区中的地块,或指的是公寓,如果公寓编号与00-0不同,则将其存储或存储,等等,在这种情况下,所有相同的公寓编号都指代同一块内的同一批次。

我想做的是传递“ taxpayer_code”的列表,并获取批次的“ lot_area”和“ built_area”。问题是,如果该人住在公寓中,那么她的公寓就占该地块总建筑面积的一小部分。因此,如果我搜索代码0010030078%(-X编号无关紧要),结果是:地段面积= 143,建筑面积= 130

但是如果我搜索0010030080%,我期望的结果是:地段面积= 283,建筑面积155

并且如果我搜索0010030078%,0010030079%,则结果:地段面积= 426,建筑面积285

因此,数据库应获取纳税人代码,然后查看所传递的每个代码的共管公寓号是否与00-0不同,如果是,则应将所有共享同一共管公寓编号的其他纳税人代码加在一起。同一地区和街区。 (理想情况下,如果通过了属于不同地区或街区的税码,则应返回警告,并且如果将更多税码添加到总和中,则列出所有已添加税码的清单就不错了,但是如果这太多了麻烦!)。>

我对SQL还是陌生的,对此我无能为力,非常感谢您能提供的所有帮助,谢谢!

我有一个名为“ tax_info”的表,该表存储了我市的地税信息,如下所示:taxpayer_code | condominium_num | lot_area |建筑面积-----------------------...

sql postgresql postgresql-12
1个回答
0
投票

嗯。 。 。使用子查询和窗口函数来添加所需的值:

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