用于检查房屋结构中是否存在 ID 的查询

Query to check if ID exists in a house structure

提问人:Younus Mohammed 提问时间:11/2/2023 最后编辑:Dale KYounus Mohammed 更新时间:11/3/2023 访问量:54

问:

我有两张桌子。#TEMP_MAIN 包含一个学院中的所有申请人和家属详细信息。 #TEMP_WifeDetails包含受抚养人及其配偶的详细信息。我必须验证受抚养人和配偶是否在同一个 houseID 中。

CREATE TABLE #TEMP_MAIN(
[Application_Id] int,
[House_ID]      int,
[DEPENDENT_ID]  int
)

insert into #TEMP_MAIN
select 101,10,301
union
select 101,10,302
union
select 102,11,401
union
select 102,11,402

CREATE TABLE #TEMP_WifeDetails(
[DEPENDENT_ID]  int,
[SPOUSE_ID]     int

)

insert into #TEMP_WifeDetails
select 301,306
union
select 401,402

我正在尝试派生一个指示Is_Dependent_Spouse_Declared

;with cte as (
select a.Application_Id,
    a.DEPENDENT_ID,
    a.House_ID,
    b.SPOUSE_ID
from #TEMP_MAIN a
join #TEMP_WifeDetails b on a.DEPENDENT_ID=b.DEPENDENT_ID

)
select a.Application_Id,
       a.House_ID,
       CASE WHEN b.House_ID IS NULL THEN NULL 
            WHEN b.House_ID IS NOT NULL AND a.House_ID=b.House_ID  THEN 1
            WHEN b.House_ID IS NOT NULL AND b.SPOUSE_ID IS NULL THEN 0
            END As Is_Dependent_Spouse_Declared
from #TEMP_MAIN a
left join cte b on a.Application_Id=b.Application_Id
and a.DEPENDENT_ID=b.SPOUSE_ID

我没有得到想要的输出。对于House_ID 10 306 不在同一所房子里申报。Is_Dependent_Spouse_Declared列的输出应为 0。但它返回 Null。请指导。

sql-server 联接

评论

0赞 Dai 11/2/2023
您使用的是哪个版本的 SQL Server?(为什么要使用隐式列?NULL
2赞 Thom A 11/2/2023
当女人是“养家糊口的人”时会发生什么?你也有一张需要考虑的桌子吗?当配偶也是男性时呢?#temp_HusbandDetails
0赞 Dai 11/2/2023
“我必须验证受抚养人和配偶是否在同一个身份证上。”- 使用声明性完整性约束而不是使用查询会更好......
0赞 Younus Mohammed 11/2/2023
1. 版本 SQL Server 2017。这就是业务需求。2. #temp_HusbandDetails=表 #TEMP_WifeDetails 实际上是针对男女的。其 Spouse 表。不可思议的名字。不好意思。3. 约束条件无法更改。
1赞 Thom A 11/2/2023
你的评论没有意义。SQL Server 不是一个版本,什么是业务需求?

答: 暂无答案