我的目标是使用字符串“finished”和一些静态值(在表中的其他列中)更新表,基于select语句并且条件是select语句的输出满足特定条件。这些条件是大约18个存储过程的输出返回值为0。
每个存储过程为每个单元(“Number_of
”)返回一些值(“EnhetsId
”),范围从0到无穷大。存储过程首先调用数据库(“GR_PS09_1
”),然后调用基于其单元ID(“EnhetsId
”)的唯一单元。
所以首先我有一个select语句,给定一个条件给我一个单位的输出。然后,如果这些单元满足SP为每个单元返回值0的条件,我想在临时表中插入“合格”单元ID(EnhetsId
),一些静态值和字符串“已完成”。
我的代码到目前为止,help from @MrReband:
declare @temp2 table (
EnhetsId varchar(50),
TjanstId Int,
Tabell varchar(50),
Kommentar ntext,
Uppdaterad datetime
);
WITH ENHET_CTE AS
(
SELECT A.[EnhetsId]
FROM [StatistikinlamningDataSKL].[dbo].[StatusHistorik] A
inner join (
select [EnhetsId], max(SenastUppdaterad) as SenastDatum
from [StatistikinlamningDataSKL].[dbo].[StatusHistorik]
group by [EnhetsId]
) B
on A.[EnhetsId] = B.[EnhetsId] and A.[SenastUppdaterad] = B.SenastDatum
WHERE [NyStatus] = 4
),
/* this code below is the one I am trying to solve */
SP_01 AS
(
set @enhet = (select exec StatistikinlamningDataSKL.dbo.SKL_admin_KN_aform 'GR_PS09_1', '''EnhetsId'''
where 'Number_of' = 0)
),
/*add more stored procedures*/
insert into @temp2
(EnhetsId, TjanstId, Tabell, Kommentar, Uppdaterad)
SELECT
EnhetsId, 1, 'GR_PS09_1', 'finished', getdate()
from ENHET_CTE;
有没有人对如何处理此代码有一些意见?