0

最初は、複数のクエリといくつかの PHP を使用してこれを行う予定でした。

私がやりたいことは、特定のユーザーが最後に注文した時間、ユーザーが注文した合計金額、および彼が支払った合計金額/コスト/カウントを取得することです。

私が試したのはこのSQLです:

SELECT `orders`.`date_created`, 
SUM(total_count) as total_sum, 
COUNT(id) AS total_orders 
FROM `orders` 
WHERE `user_id` = '96838' 
AND (`status` = 'new' OR `status` = 'delivered') 
ORDER BY `orders`.`date_created` DESC
LIMIT 1

上記から私が期待したことは次のとおりです。

total_sum = total count/amount of all the orders that the user has.
total_orders = total orders
date_created = grab the last orders date_created, so we can know when the last time was.

今日、上記の SQL を実行すると、正しい total_sum と total_orders の値が返されますが、date_created が間違っています (最後の注文ではなく最初の注文が選択されますか?)

そして、「LIMIT 1」は必要ですか?

4

1 に答える 1

1

あなたが何を求めているのか理解できれば、グループ化する必要はありません-最大の日付を取得するだけです:

SELECT
    MAX(date_created) as last_order_date, 
    SUM(total_count) as total_sum, 
    COUNT(id) AS total_orders 
FROM
    `orders` 
WHERE
    `user_id` = '96838' 
    AND
    `status` IN ('new', 'delivered')
于 2013-10-22T11:25:08.327 に答える