如何解决缺少该零件时如何更新无数据零件的状态?
我使用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 举报,一经查实,本站将立刻删除。