Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从具有重复项的列中减去_Sql_Sql Server_Join - Fatal编程技术网

Sql 从具有重复项的列中减去

Sql 从具有重复项的列中减去,sql,sql-server,join,Sql,Sql Server,Join,因此,我需要从“消费”表中减去“qitems”表中的现有数量。但是,有重复项,它只为每个项减去一次。我该怎么办?我附上了表格的截图。提前感谢您的帮助 Update qi Set qi.QtyOnHand = (qi.QtyOnHand - c.delqty) From qitem qi Inner Join Consuming c on qi.itemname = c.itemname 根据语法,假设您使用的是SQL Server。不管数据库是什么,想法都是一样的。在执行更新之前,您需要聚合:

因此,我需要从“消费”表中减去“qitems”表中的现有数量。但是,有重复项,它只为每个项减去一次。我该怎么办?我附上了表格的截图。提前感谢您的帮助

Update qi
Set qi.QtyOnHand = (qi.QtyOnHand - c.delqty)
From qitem qi
Inner Join Consuming c
on qi.itemname = c.itemname

根据语法,假设您使用的是SQL Server。不管数据库是什么,想法都是一样的。在执行更新之前,您需要聚合:

Update qi
    Set qi.QtyOnHand = (qi.QtyOnHand - c.delqty)
    From qitem qi Inner Join
         (select c.itemname, sum(c.delqty) as delqty
          from Consuming c
          group by c.itemname
         ) c
         on qi.itemname = c.itemname;

根据语法,假设您使用的是SQL Server。不管数据库是什么,想法都是一样的。在执行更新之前,您需要聚合:

Update qi
    Set qi.QtyOnHand = (qi.QtyOnHand - c.delqty)
    From qitem qi Inner Join
         (select c.itemname, sum(c.delqty) as delqty
          from Consuming c
          group by c.itemname
         ) c
         on qi.itemname = c.itemname;

在加入之前,您需要对消费进行分组,并对数量进行合计。请不要加入
itemname
!使用主键和外键。您的语法不是MySQL语法。你确定数据库标签吗?我修好了!很抱歉,您需要分组
消费
并在加入之前将数量相加。请不要加入
itemname
!使用主键和外键。您的语法不是MySQL语法。你确定数据库标签吗?我修好了!很抱歉,非常感谢!太好了,太谢谢你了!那太完美了