【发布时间】:2013-02-22 02:14:41
【问题描述】:
寻找一种按三个条件对订单进行排序的方法。我可以毫无问题地得到其中两个。示例表:
Buyer Qty Item_ID
James 1 12345
Jack 1 34564
John 3 13445
Kevin 1 83243
Bill 2 23434
Jack 3 23423
所以这里的诀窍是首先将买家分组,
然后数量
然后是 item_id
Jack 有两个订单需要组合在一起,然后拉到一起发货 剩下的订单需要按qty分组,然后按item_ID排序
输出如下:
Buyer Qty Item_ID
Jack 1 34564
Jack 3 23423
James 1 12345
Kevin 1 83243
Bill 2 23434
Bob 2 23444
John 3 13445
买家无需排序,只需为多个订单分组 按数量排序,item_id 分隔 Jacks 订单。我们每天收到 100 个订单,来自同一买家的多个订单。具有相同数量商品的订单需要按 item_id 排序,以简化将库存从房间一端拉到另一端的过程。似乎将买家分组会起作用,但还没有弄清楚。
迄今为止最合理的查询:
select * FROM orders
WHERE printed = 0
AND status = 'completed'
AND address_name <> ''
group by buyer
ORDER BY qty, id;
此查询会跳过来自同一买家的多个订单,并对其余订单进行正确排序。
我已经成功实施了答案 1,谢谢!
【问题讨论】:
-
您在哪里尝试过这样做?
-
我认为您只需要
order by Buyer, qty, item_ID而不是“分组依据”是不是错了?看到预期的输出也会很有用 -
我希望你能得到第一个问题的答案。所以,你会接受它的答案。如果您还有其他问题,最好创建一个新问题而不详细说明现有已解决的问题。从这个问答中受益的不仅仅是你。所以保持这种格式,然后其他人可以使用该线程。顺便说一句,错误是不言自明的。您的 paypal_ipn_orders 表中没有 item_number 列。(确认,它可能是 item_id)
标签: mysql sorting multiple-columns