我有一个购物车,需要以表格格式列出订单。每个订单可以有多个产品,每个产品可能有多个选项(这些是书本类型的产品,您可以选择不同的封面颜色(免费),或者在上面印上您的名字(额外收费)
到目前为止我所拥有的是
select
order_id,
sum(price_paid * ordered_qty),
group_concat(product_code SEPARATOR ' / ')
from
orders join order_lines USING (order_id)
where
DATE_FORMAT(order_date, '%Y%m') >= '201203' and DATE_FORMAT(order_date, '%Y%m') <= '201203' and order_status = 'SHIPPED' and item_status = 'LINESHIPPED'
group by order_id
order by order_id
这将忽略选项(order_line_options 表)并返回:
58 21.98 SKU-12 / SKU-12
59 10.99 SKU-12
60 67.78 SKU-31 / SKU-12 / SKU-56
61 259.45 SKU-98 / SKU-06 / SKU-98
62 9.49 SKU-40 / SKU-36
哪个正确地总结了单位成本 * 数量并在单行中列出了产品代码(重复的产品代码表示订购的不同选项)
我现在需要的是产品中包含的选项,结果如下:
58 21.98 SKU-12 (Color: Red, 0.00 - Printname 0.00) / SKU-12 (Color: Blue, 0.00 - Printname 4.95)
仅显示 SKU-12 的第一个订单订购了两次,一次为红色,一次为蓝色,并印有名称,价格为 4.95 美元
我花了一天时间尝试额外的 group by / group_concat 和 sub 查询,但我什至没有接近解决方案,所以任何帮助都会很棒。凯文