需要创建一个sql视图来计算佣金&运费。每件商品的运费,但是它们是按订单ID级别收取的,可以有多个订单商品请查看附件中的图片。请注意,因为运费在订单ID级别。而不是订单商品ID级别。订单商品ID列为空白,以便收取运费。因此,为了获得运费,我们需要按订单中的没有商品进行划分。在mysql中使用COALESCE来获取运输费用
订单商品ID是该订单中没有商品,每个订单ID都可以有一个或多个订单项ID的 image of view required
SELECT main.order_id, main.order_item_id, COALESCE(P.a,0) + COALESCE(C.a,0) - (COALESCE(S.a,0)/main.c) AS price
FROM
(((SELECT order_id, order_item_id, count(*) as c FROM main GROUP BY order_id, order_item_id) main LEFT OUTER JOIN
(SELECT amount AS a FROM main WHERE description='Principal') P ON main.order_id =P.order_id AND main.order_item_id = P.order_item_id) LEFT OUTER JOIN
(SELECT amount AS a FROM main WHERE description='Commission') C ON main.order_id=C.order_id AND main.order_item_id = C.order_item_id) LEFT OUTER JOIN
(SELECT amount AS a FROM main WHERE description='Shipping Charges') S ON main.order_id=S.order_id AND main.order_item_id = S.order_item_id
上面是sql查询它给出了一个错误#1054 - 在未知列'P.order_id“的条款”谁能帮我纠正以获得所需的结果,如附图所示。
在你的子查询为P,所以它说未知列 –
感谢Ahammed你没有选择的order_id作为列。由于这是由另一个人写的,我几乎没有什么知识可以帮助我纠正代码 – Kanted