我有两个表,我想从GROUP BY数据中更新一行
这是我的代码:
第二个代码:
UPDATE [TABLE].[dbo].[Movies]
SET [NumFrames] =
(SELECT COUNT(ImageURL) as "Count"
FROM [TABLE].[dbo].[Frames]
GROUP BY Movie_Id)
GO
Run Code Online (Sandbox Code Playgroud)
第一个代码:
(SELECT COUNT(ImageURL) as "Count"
FROM [TABLE].[dbo].[Frames]
GROUP BY Movie_Id
Run Code Online (Sandbox Code Playgroud)
第一个代码给我一行数字
Count
12
6
10
10
10
Run Code Online (Sandbox Code Playgroud)
我想把它插入 Movies.NumFrames
第二个代码给我一个错误
消息 512,级别 16,状态 1,第 1 行
子查询返回了 1 个以上的值。当子查询跟随 =、!=、<、<=、>、>= 或当子查询用作表达式时,这是不允许的。
请帮忙
我确定这很简单
您需要使用 -WHERE子句(GROUP BY不再需要)。
否则,您的子查询为 each 返回一行Movie_Id,因此您有不止一行用作更新源。
UPDATE [TABLE].[dbo].[Movies]
SET [NumFrames] =
( SELECT COUNT(ImageURL) as "Count"
FROM [TABLE].[dbo].[Frames]
WHERE [TABLE].[dbo].[Frames].Movie_Id = [TABLE].[dbo].[Movies].Movie_Id
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6547 次 |
| 最近记录: |