缺少该零件时如何更新无数据零件的状态?

问题描述

我使用SQL Server 2012,但有一个问题:我无法更新状态,即没有数据返回,而选择语句的交叉结果不适用。

意思是在加入零件和公司运作时没有数据返回,然后在缺少数据时将该零件的状态更新为该零件的状态。

create table #TempPC   
(  
    PartNumber NVARCHAR(300),CompanyId INT,Status NVARCHAR(200)  
)  

INSERT INTO #TempPC (PartNumber,CompanyId)   
VALUES ('9C06031A2R43FKHFT',1233345),('VJ0805AIR5CXAMT',8433324)

当我运行如下所示的select时,它不返回某些部分的数据,因此我将更新状态,而没有数据返回到该部分:

SELECT 
    t.PartNumber,t.CompanyName,pc.FamilyName,t.Status 
FROM  
    #TempPC t    
CROSS APPLY
    [PC].FN_PartCheck_Test (t.[PartNumber],1,t.CompanyId) pc     
WHERE 
    pc.GroupID > -2 AND pc.PortionID > -2  

当缺少具有功能的临时表上的任何零件和公司,然后不使用该零件的任何数据来更新该零件的状态时,我该怎么办。

预期结果:

PartNumber            CompanyId     status  
---------------------------------------------------------
9C06031A2R43FKHFT     1233345       No data returned  
VJ0805AIR5CXAMT       8433324       it have data returned  

该怎么做?

SELECT * 
FROM [PC].FN_PartCheck_Test (t.[PartNumber],t.CompanyId) pc  

RETURN ID PartNumber,CompanyID,FamilyID   

解决方法

如果我的理解正确,那么您需要20125,1,但您还需要一个子查询:

outer apply

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...