Sql 使用select命令更新我的表格Tenterexit?
我有一张1628行的桌子。它包含每日进出登记簿。我想标记第一次进入/人/天。我试图用以下查询更新我的表,但它不起作用。我的错在哪里Sql 使用select命令更新我的表格Tenterexit?,sql,sql-server,sql-update,Sql,Sql Server,Sql Update,我有一张1628行的桌子。它包含每日进出登记簿。我想标记第一次进入/人/天。我试图用以下查询更新我的表,但它不起作用。我的错在哪里 UPDATE [dbo].[Tenterexit] SET [mark] =1 where exists (SELECT MIN( [id] ) ,[name] ,[day] FROM [dbo].[Tenterexit] WHERE [INF]=0 GROUP BY [Name] ,[day]) [inf]=
UPDATE [dbo].[Tenterexit]
SET
[mark] =1
where exists
(SELECT MIN( [id] )
,[name]
,[day]
FROM [dbo].[Tenterexit] WHERE [INF]=0 GROUP BY [Name] ,[day])
[inf]=0
表示该段落已进入。请尝试以下操作
UPDATE t
SET
[mark] =1
from [dbo].[Tenterexit] t
where t.id in ( select MIN([id])
FROM [dbo].[Tenterexit] t1 WHERE [INF]=0 GROUP BY [Name] ,[day]
)
您可以使用
update->from
子句
UPDATE [dbo].[Tenterexit]
SET
[mark] =1
FROM
(SELECT MIN([id]) id
FROM [dbo].[Tenterexit] WHERE [INF]=0 GROUP BY [Name],[day]) t2
WHERE t2.id = [Tenterexit].id
我惊讶地发现这是有效的——我个人认为扎伊努尔的答案对于初学者来说更容易理解,而且总体上更清晰。