微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我使用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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。