【发布时间】:2020-12-12 15:18:34
【问题描述】:
我使用 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
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
当临时表上的任何部分和公司与函数连接丢失时,我需要做什么,然后将状态更新到该部分,而这部分没有任何数据。
预期结果:
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
【问题讨论】:
标签: sql tsql stored-procedures sql-server-2012 sql-function