我正在建立一个用于对生产数据进行统计分析的表。我已经提取了所有不同的案例,并构造了一个计数以查找表中每个独特案例出现了多少次。
我的问题是尝试使用COUNT的结果更新表的“ Number”列时出现的
这是我到目前为止的代码。
TRUNCATE TABLE WeightData
INSERT INTO WeightData (WeightType,WeightIncrement)
SELECT DISTINCT OutboardWeightTable,OutboardAmount
FROM ProductionData
WHERE [Datetime] between '180821_150000' and '180822_000000' and (OutboardAmount > 0)
--UPDATE WeightData
--SET Number = (
SELECT COUNT(*)
FROM WeightData a
inner join ProductionData b
ON (a.WeightType = b.OutboardWeightTable) and (a.WeightIncrement = b.OutboardAmount)
WHERE [Datetime] between '180821_150000' and '180822_000000' and (OutboardAmount > 0)
GROUP BY a.WeightType,a.WeightIncrement
--)
我已注释掉不起作用的行,但是当我尝试运行查询时,收到以下消息。我尝试了许多不同的方法来执行此操作,但我认为这是我的尝试。
消息512,级别16,状态1,过程TestProcedure,第24行子查询 返回的值超过1。子查询时不允许这样做 遵循=,!=,<,<=,>,> =,或当子查询用作 表达。
当我在注释了这些行之后运行代码时,这是表格和结果屏幕。
答案 0 :(得分:1)
我认为您只想要一个相关的子查询:
UPDATE WeightData
SET Number = (SELECT COUNT(*)
FROM ProductionData pd
WHERE wd.WeightType = p.OutboardWeightTable and
wd.WeightIncrement = pd.OutboardAmount AND
pd.OutboardAmount > 0 AND
pd.[Datetime] between '180821_150000' and '180822_000000'
)
FROM WeightData wd;