如果我的问题不是很具描述性,我很抱歉。当我得到更好的想法时会更新。
我想通过对其订单项进行分类来创建包含SUM的订单总计的SQL。
为了简单起见,我已经删除了我在此处加载的架构的版本:http://sqlfiddle.com/#!9/8eb9a/1。我的表结构:
每个订单商品都有一个数据字段,用于将订单商品分类到特定类别。可以是例如" Automotive"," DSA",...或null。现在我想通过每个分类器的SUM(orders.total)。如果订单商品符合"汽车"分类器我想将订单总数添加到该分类器中。如果订单有另一个项目,例如" DSA"我想将订单总数添加到该分类器中。
我尝试运行此SQL,但这不是正确的,因为如果订单包含多个具有相同分类器的订单商品,则会为该分类器添加多个订单总计(LEFT JOIN)。
select OI.data, SUM(O.total)
from order_items OI
left join orders O on O.id=OI.order_id
group by data
我想将每个订单的订单总数仅添加到每个不同的订单商品分类器。
您可以在此SQL Fiddle http://sqlfiddle.com/#!9/8eb9a/1
中看到该示例答案 0 :(得分:2)
您希望根据您的描述添加不同的行:
select OI.data, SUM(O.total)
from (SELECT DISTINCT order_id,data FROM order_items) OI
left join orders O on O.id=OI.order_id
group by data;