我正在创建一个 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' 和数据和时间一样。
我有点迷茫,所以我希望有人可以在这里帮助我或指出我正确的方向。
谢谢。