私はphp/mysqlアプリを作成していて、ユーザーが指定した日付に基づいてクエリを実行しようとしています。別の日付が存在しないか一致しない場合、それらの結果を使用してクエリを返します。
次のように、いくつかのことに基づいて照会したい複数の注文があります。
- ユーザーが日付を指定します。MySQL は提供された日付を使用し、その Customer_ID に関連付けられたより新しい日付を持つ「注文」がない場合にのみ行を返します。したがって、ユーザーが指定した日付に基づいて新しい注文がない場合にのみ値が必要です。
これが私が遊んできたものです:
SELECT
o.Customer_ID, o.ShippingCompanyName, cg.Category, cd.Category_ID, o.Order_ID,
SUM(o.CustomerOrderTotal) as TOTAL,
COUNT(o.Order_ID) as ORDERS,
MAX(o.OrderPlaceServerTime) as LASTORDER
FROM Orders o
LEFT JOIN CustomerDetails cd ON o.Customer_ID = cd.Customer_ID
LEFT JOIN _CustomerCategory cg ON cg.Category_ID = cd.Category_ID
WHERE (
o.OrderPlaceServerTime <= '".$BEFORE."'
AND o.OrderPlaceServerTime NOT BETWEEN '".$BEFORE."' AND NOW()
)
AND o.IsVOID = 0
AND o.IsPENDING = 0
GROUP BY o.Customer_ID
ORDER BY TOTAL DESC
望む結果が得られません。ユーザーが指定した日付よりも新しい注文もある顧客注文を私に渡します。
また、「日付」は「2010-10-10 10:05:55」のようなもので、日付と時刻があります。
私は少し迷っているので、誰かがここで私を助けてくれるか、正しい方向に向けてくれることを願っています.
ありがとう。