0

すべてのクライアントが購入した最後の注文を選択しようとしています。実際の目的は、特定の範囲、たとえば過去 3 か月を追加し、過去 3 か月のクライアントからの最後の注文を検討することですが、それらよりも早い注文はありません。 3か月、これまでのところ私はこれを持っています:

SELECT zen_orders.orders_id, zen_customers.customers_id,
    zen_orders.date_purchased,  zen_orders.orders_status
FROM  zen_orders 
INNER JOIN zen_customers
ON zen_orders.customers_id = zen_customers.customers_id
    AND zen_orders.orders_status = '3'
ORDER BY zen_customers.customers_id

私はmysqlを初めて使用します。これは現在、すべてのクライアントからのすべての注文を返します。クライアントが複数の注文で、異なる注文IDで同じ顧客IDを持ついくつかの行を繰り返すと、最後のものだけを分離するにはどうすればよいですか範囲内に収まるように、注文のあるすべてのクライアントから注文しますか?

4

2 に答える 2

0
select o.orders_id,o.customers_id,
    o.date_purchased,  o.orders_status from
(
    select max(o.orders_id) maxOrder,o.customer_id
    FROM  zen_orders o
    where o.orders_status = '3'
    group by o.customers_id
) t
inner join zen_orders o on o.orders_id = t.maxOrder
于 2013-10-15T20:22:09.743 に答える
0

30 日以上前の顧客情報と注文情報を表示し、60 日以内に表示します。

 SELECT C.customers_id, C.customers_firstname, C.customers_lastname,  
    O.date_purchased, O.orders_id, O.order_total, OS.orders_status_name
        FROM  orders O
        LEFT join customers C on C.customers_id = O.customers_id
        LEFT join orders_status OS on OS.orders_status_id=O.orders_status
        WHERE 
           O.date_purchased BETWEEN DATE_SUB(NOW(), INTERVAL 2 MONTH) AND DATE_SUB(NOW(), INTERVAL 1 MONTH)
 GROUP BY C.customers_id
于 2014-01-17T19:43:20.990 に答える