Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用select命令更新我的表格Tenterexit?_Sql_Sql Server_Sql Update - Fatal编程技术网

Sql 使用select命令更新我的表格Tenterexit?

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]=

我有一张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]=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

我惊讶地发现这是有效的——我个人认为扎伊努尔的答案对于初学者来说更容易理解,而且总体上更清晰。