Sql server TSQL求和基于双ID值的值

Sql server TSQL求和基于双ID值的值,sql-server,tsql,Sql Server,Tsql,这是我的数据的一小部分简化片段 OrderID QTY ItemID ActualQTY(does not exist in database) 1 2 1 2 1 2 3 1 1 4 5 3 现在我需要一个查询,它将根据ItemID的填充ActualQTY。因此,将itemid1=3和itemid2=1的总数量相加,最后将itemid3=5 应该是这样的 OrderID QTY ItemI

这是我的数据的一小部分简化片段

OrderID  QTY  ItemID  ActualQTY(does not exist in database)
1        2    1       
2        1    2
3        1    1
4        5    3
现在我需要一个查询,它将根据
ItemID的
填充
ActualQTY
。因此,将
itemid1=3
itemid2=1
的总数量相加,最后将
itemid3=5

应该是这样的

OrderID  QTY  ItemID  ActualQTY
1        2    1       3
2        1    2       1
3        1    1       3
4        5    3       5
问题是我是TSQL新手,我想不出一个好的方法来实现这一点

--编辑--

其他人帮我解决了这个问题,并给出了这个对我来说似乎是最有效的解决方案。但是,如果需要将它们应用于VisualStudio中的XSD文件,则此解决方案不起作用。因此,我将其转换为服务器上的表值函数

SELECT OrderID, QTY, ItemID, SUM(QTY) OVER(PARTITION BY ItemID) AS ActualQTY
因此,如果此解决方案不起作用,请求助于下面的答案,您可以这样做:

SELECT b.OrderID,
       b.QTY,
       b.ItemID,
       a.total_sum AS ActualQTY
FROM   (SELECT ItemID,
               Sum(QTY) AS total_sum
        FROM   tablename
        GROUP  BY ItemID) AS a
       INNER JOIN tablename b
               ON a.ItemID = b.ItemID 
SELECT
  t2.OrderID,
  t2.QTY,
  t2.ItemID,
  t1.ActualQTY
FROM
(
   SELECT 
     ItemId,
     SUM(QTY) AS ActualQTY
   FROM tablename AS t1
   GROUP BY ItemId
) AS t1
INNER JOIN tablename AS t2 ON t1.ItemId = t2.ItemID;
UPDATE t1
SET t1.ActualQTY = t2.ActualQTY
FROM tablename AS t1
INNER JOIN
(
   SELECT 
     ItemId,
     SUM(QTY) AS ActualQTY
   FROM tablename AS t1
   GROUP BY ItemId
) AS t2 ON t1.ItemID = t2.ItemID

但是,如果要更新列
ActualQTY
值,而不仅仅是选择,可以执行以下操作:

SELECT
  t2.OrderID,
  t2.QTY,
  t2.ItemID,
  t1.ActualQTY
FROM
(
   SELECT 
     ItemId,
     SUM(QTY) AS ActualQTY
   FROM tablename AS t1
   GROUP BY ItemId
) AS t1
INNER JOIN tablename AS t2 ON t1.ItemId = t2.ItemID;
UPDATE t1
SET t1.ActualQTY = t2.ActualQTY
FROM tablename AS t1
INNER JOIN
(
   SELECT 
     ItemId,
     SUM(QTY) AS ActualQTY
   FROM tablename AS t1
   GROUP BY ItemId
) AS t2 ON t1.ItemID = t2.ItemID