0

我有两个名为的表order,并且orderdetail与键的关系order_id 我想查询数据库以获取每个订单的总计。

order表有字段order_idcustomer_name

order_detail表有字段id (primary key), order_number (foreign key), product, qty,price

我想要这样的字段的结果:

order_id, grand_total.

我为此创建了一个视图order_detail

CREATE OR REPLACE VIEW orderTotal AS
SELECT
    order_number,
    Round(sum(qty * price),2) as grandTotal
    FROM order_detail t group by order_number;

它工作得很好,但有一个问题。某些订单在 中没有参考数据order_detail,则该视图未列出该记录。我该如何解决这个问题?请给我一个示例查询。

它可能需要多个 SQL 查询,但我们可以将它构建为视图吗?

例如,我需要这样的数据:

order_id    grandTotal
1           200
2           0                    // when data is missing
3           150.35 
4

1 回答 1

1

如果您有父母记录而没有孩子,它可以帮助您:

SELECT
order.order_id,
coalesce(Round(sum(order_detail.qty * order_detail.price),2),0) as grandTotal
FROM order 
LEFT join order_detail on order_detail.order_number = order.order_id 
GROUP BY order.order_id
于 2013-10-30T20:10:04.897 回答