我有两个表,我想从GROUP BY
数据
这是我的代码:
第二段代码:
UPDATE [TABLE].[dbo].[Movies]
SET [NumFrames] =
(SELECT COUNT(ImageURL) as "Count"
FROM [TABLE].[dbo].[Frames]
GROUP BY Movie_Id)
GO
第一个代码:
(SELECT COUNT(ImageURL) as "Count"
FROM [TABLE].[dbo].[Frames]
GROUP BY Movie_Id
第一个代码给我一行数字
Count
12
6
10
10
10
我想将其插入Movies.NumFrames
第二个代码给我一个错误
Msg 512,Level 16,State 1,Line 1
子查询返回超过1 值。当子查询遵循=,!=,<,< =时,不允许这样做 ,>,> =或当子查询用作表达式时。
请帮忙
我确定这很简单
答案 0 :(得分:3)
您需要使用WHERE
- 条款(不再需要GROUP BY
)
否则,您的子查询会为每个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
)