缺少该部分时如何更新没有数据的部分的状态?
How to update status for part with nothing data when this part is missed?
我使用 SQL Server 2012 并遇到一个问题:我无法使用无数据 returned 更新状态,其中没有结果 returned 来自 select语句交叉应用函数。
意思是没有数据 return 当连接部件和公司运行时编辑然后更新状态到这个部件,当数据丢失时那个部件没有任何数据。
create table #TempPC
(
PartNumber NVARCHAR(300),
CompanyId INT,
Status NVARCHAR(200)
)
INSERT INTO #TempPC (PartNumber, CompanyId)
VALUES ('9C06031A2R43FKHFT', 1233345),
('VJ0805AIR5CXAMT', 8433324)
当我 运行 一个 select 如下所示时,它没有 return 某些部分的数据所以我将更新没有数据的状态 returned 到这个部分:
SELECT
t.PartNumber, t.CompanyName, pc.FamilyName, t.Status
FROM
#TempPC t
CROSS APPLY
[PC].FN_PartCheck_Test (t.[PartNumber], 0, 1, 1, t.CompanyId) pc
WHERE
pc.GroupID > -2 AND pc.PortionID > -2
当临时 table 上的任何部分和公司错过了函数连接时我需要做什么,然后更新此部分的状态,此部分没有任何数据。
预期结果:
PartNumber CompanyId status
---------------------------------------------------------
9C06031A2R43FKHFT 1233345 No data returned
VJ0805AIR5CXAMT 8433324 it have data returned
请问怎么做?
SELECT *
FROM [PC].FN_PartCheck_Test (t.[PartNumber], 0, 1, 1, t.CompanyId) pc
RETURN ID PartNumber, CompanyID, FamilyID
如果我没理解错的话,你想要outer apply
,但是你还需要一个子查询:
Select t.PartNumber, t.CompanyName, pc.FamilyName, t.Status
from #TempPC t outer apply
(select pc.*
from [PC].FN_PartCheck_Test( t.[PartNumber], 0, 1, 1, t.CompanyId) pc
where pc.GroupID > -2 And pc.PortionID > -2
) pc ;
我使用 SQL Server 2012 并遇到一个问题:我无法使用无数据 returned 更新状态,其中没有结果 returned 来自 select语句交叉应用函数。
意思是没有数据 return 当连接部件和公司运行时编辑然后更新状态到这个部件,当数据丢失时那个部件没有任何数据。
create table #TempPC
(
PartNumber NVARCHAR(300),
CompanyId INT,
Status NVARCHAR(200)
)
INSERT INTO #TempPC (PartNumber, CompanyId)
VALUES ('9C06031A2R43FKHFT', 1233345),
('VJ0805AIR5CXAMT', 8433324)
当我 运行 一个 select 如下所示时,它没有 return 某些部分的数据所以我将更新没有数据的状态 returned 到这个部分:
SELECT
t.PartNumber, t.CompanyName, pc.FamilyName, t.Status
FROM
#TempPC t
CROSS APPLY
[PC].FN_PartCheck_Test (t.[PartNumber], 0, 1, 1, t.CompanyId) pc
WHERE
pc.GroupID > -2 AND pc.PortionID > -2
当临时 table 上的任何部分和公司错过了函数连接时我需要做什么,然后更新此部分的状态,此部分没有任何数据。
预期结果:
PartNumber CompanyId status
---------------------------------------------------------
9C06031A2R43FKHFT 1233345 No data returned
VJ0805AIR5CXAMT 8433324 it have data returned
请问怎么做?
SELECT *
FROM [PC].FN_PartCheck_Test (t.[PartNumber], 0, 1, 1, t.CompanyId) pc
RETURN ID PartNumber, CompanyID, FamilyID
如果我没理解错的话,你想要outer apply
,但是你还需要一个子查询:
Select t.PartNumber, t.CompanyName, pc.FamilyName, t.Status
from #TempPC t outer apply
(select pc.*
from [PC].FN_PartCheck_Test( t.[PartNumber], 0, 1, 1, t.CompanyId) pc
where pc.GroupID > -2 And pc.PortionID > -2
) pc ;