我写了这个查询:
SELECT DISTINCT EMER_EmployeeID
FROM (SELECT [EMER_EmployeeID],
[EMER_Employee_StatusDateS]
FROM [dbo].[EmployeeERP] AS B
WHERE [EMER_ClassCode] NOT IN ( 1, 2, 3, 5,
6, 8 )
AND [EMER_Employee_StatusCode] NOT IN ( 3, 4, 5, 6,
68, 0, 1, 9 )) AS t
INNER JOIN [dbo].[MonthlySalary] AS K
ON K.MS_EmployeeID = T.EMER_EmployeeID
WHERE K.MS_Month > 2 + ( CAST(CAST(RIGHT('0' + RTRIM(MONTH([EMER_Employee_StatusDateS])), 2) AS FLOAT) AS INT) )
这给我一个ID'的列表。
我有另一张桌子 - 叫她TB:
TE_EmployeeID
TE_IsCheck
我写了这个以使所有TE_IsCheck为零: 更新TB集[TE_IsCheck] = 0
现在,我想根据“大”查询中的列表将字段TE_IsCheck更新为1。我怎样才能做到这一点?谢谢!
答案 0 :(得分:1)
您可以使用update
。说,像这样:
with ids as (
<your query here>
)
update tb
set TE_IsCheck = 1
where tb.TE_EmployeeID in (select EMER_EmployeeID from ids);