【发布时间】:2014-02-27 01:02:51
【问题描述】:
我正在尝试将列 total(Totl) 更新为 SUM(Volume) 除以 COUNT(*) ,仅针对列/s 组(周)中的行,在 4 个不同的表中水果(Fruit_Volume)和很多记录(具有更多属性,如买家、种植区域......),我只想为 Apples(Item_Name)生成有机(Fruit_Type)的值,按周(日期)分组。 -TIA
UPDATE Fruit_Volume
SET Totl = B.Totl
FROM (SELECT SUM(Volume)/COUNT(*) Totl FROM Fruit_Volume
WHERE Item_Name LIKE 'Apple%' AND Fruit_Type = 'Organic'
GROUP BY Week -- I feel the need to group by Item_Group, Fruit_Type
) as B
WHERE Item_Name LIKE 'Apple%' AND Fruit_Type = 'Organic'
【问题讨论】:
-
当您按周分组时,您的子查询将返回多行,因此您无法更新。如果它返回一个值,我相信它会起作用
-
具有预期输出的示例架构和数据会很有用
-
@aaryan 不要使用无法更新 Totl 字段的分组依据(它会给出多个结果)。为什么需要按周分组?
标签: sql-server tsql cursor sql-update common-table-expression