Sql 将所有GME类别零件的订单行订购数量增加20%

Sql 将所有GME类别零件的订单行订购数量增加20%,sql,oracle,sql-update,Sql,Oracle,Sql Update,这是一个家庭作业问题,但我被难倒了。我知道这将涉及两个不同的表:order_line和item,因为'num_ordered'在order_line中,而'category'在item中。我还知道:1这将涉及一个“更新”,2必须涉及一个函数:roundsumnum_ordered*1.20,0-这将使num_ordered增加20%,并将四舍五入为一个整数,3我知道必须为num_ordered设置一个“集合”。我不知道的是如何使更新与相关函数一起工作。这是我当前无法使用的代码: update o

这是一个家庭作业问题,但我被难倒了。我知道这将涉及两个不同的表:order_line和item,因为'num_ordered'在order_line中,而'category'在item中。我还知道:1这将涉及一个“更新”,2必须涉及一个函数:roundsumnum_ordered*1.20,0-这将使num_ordered增加20%,并将四舍五入为一个整数,3我知道必须为num_ordered设置一个“集合”。我不知道的是如何使更新与相关函数一起工作。这是我当前无法使用的代码:

update order_line ol
inner join
    (select i.item_num,(round(sum(ol.num_ordered * 1.20)),0) new_num
    from i.item
    where category = 'GME'
    group by i.item_num)
on ol.item_num = og.item_num
set ol.num_ordered  = og.new_num;

在这种情况下,您只需要测试是否存在。如果订单行上的项目属于“GME”类别中的项目集

update order_line ol
   set ol.num_ordered = ol.num_ordered * 1.2
 where ol.item_num in(
         select i.item_num
           from item i
          where i.category = 'GME');

请在实际问题的全文中加入一个答案,而不是试图让我们从您对问题的假设和所涉及表格的DDL陈述中猜出问题是什么。另外请注意,根据StackOverflow许可证,此处的贡献是随附的,您需要在提交作业时引用使用的任何答案。前缀和ol别名也是不必要的,或者从i.item更改为从i.item。谢谢,我自己在原始问题中发现了相同的错误,但后来我忘了修复它: