代码之家  ›  专栏  ›  技术社区  ›  Aspiring Developer

Sumifs SQL表匹配行值

  •  0
  • Aspiring Developer  · 技术社区  · 9 年前

    =SUMIFS(I:I,H:H,"Shipping",G:G,G7,F:F, F7) (该公式位于“total_cost”列。

    其中H列为 process ,G是 order_no parent_name

    我不确定的部分是如何匹配行值G7&在本例中,整个范围内的F7(或者即使考虑到这个小db有数百万行*45列,这是有效的)将填充该单元格的total_cost列。

    下面我想得到每位家长每个订单号的订单总成本。所有订单中都有流程(编译、包装、发货),发货是最终目的。因此在“total_cost”列中,它将当前行的所有成本相加 和 父_名称 当流程=装运时。

    我得到一个“组函数的无效使用”如下。我试着跟着 This SUMIFS in SQL Post 但似乎不适合 GROUP BY 开始工作。

        UPDATE m.data
        set total_cost = 
        IF(process = 'Shipping',
                      SUM(case when order_no = order_no
                          AND parent_name = parent_name
                                THEN sum(process_cost) else 0 END), "")
    

    如果你有更好的方法,当然可以告诉我。

    1 回复  |  直到 9 年前
        1
  •  0
  •   ScaisEdge    9 年前

    您可以按order\u no对sum组使用具有内部连接的更新

    update data
    inner join (
      select order_no , sum(process_cost) as my_sum
      from data
      group by order_no
      ) t on t.order_no = data.order_no and data.process=  'Shipping'
    set total_cost  = my_sum