SQL - where 子句中的未知列“d.datum” - 尝试在 3 个表之间进行计算

问题描述 投票:0回答:1

该专栏存在,但他仍然给我这个错误。有谁知道我该如何解决这个问题?

UPDATE dashboard_19_2 d
SET d.mwst_abs = (
    SELECT SUM(berechneter_mwst)
    FROM (
        SELECT s.ordernumber, (s.invoice_amount / 100) * max_tax_rate AS berechneter_mwst
        FROM s_order s
        JOIN (
            SELECT ordernumber, MAX(tax_rate) AS max_tax_rate
            FROM s_order_details
            WHERE price > 0
            GROUP BY ordernumber
        ) sd ON s.ordernumber = sd.ordernumber
        WHERE DATE(s.ordertime) = d.datum
        AND s.subshopID = 19
    ) AS mwst_berechnungen
);

我想通过计算一个表上发票金额的总和除以百来计算一列,然后乘以另一个表的税率。

sql mysql
1个回答
0
投票

您可以使用

LATERAL JOIN

UPDATE dashboard_19_2 d
CROSS JOIN LATERAL (
    SELECT SUM(s.invoice_amount / 100) * max_tax_rate AS berechneter_mwst
    FROM s_order s
    JOIN (
        SELECT ordernumber, MAX(tax_rate) AS max_tax_rate
        FROM s_order_details
        WHERE price > 0
        GROUP BY ordernumber
    ) sd ON s.ordernumber = sd.ordernumber
    WHERE DATE(s.ordertime) = d.datum
      AND s.subshopID = 19
) s
SET d.mwst_abs = s.berechneter_mwst;
© www.soinside.com 2019 - 2024. All rights reserved.