【发布时间】:2011-04-22 05:58:48
【问题描述】:
我有一个订单表,其中存储了有关订单的信息(包括 OrdersName、OrdersSurname、OrdersEmail、OrdersPhone),这是我需要获取的信息。
它包含一个字段 OrdersFinishedTime,它是一个 DateTime 字段,用于存储订单完成时的数据。
对于超过 180 天没有购买任何东西的用户,我需要从 Orders 表中选择 OrdersName、OrdersSurname、OrdersEmail、OrdersPhone。
也就是说 - 我需要找到最后一次唯一购买的时间超过 180 天的唯一用户。
提前致谢!
编辑:
我知道如何查找 180 天之前的所有记录订单,但我需要 180 天之前的记录,并且在该日期之后没有更多订单(针对该特定用户)!
编辑2: 你可能没有通读这个问题。我需要找到超过 180 天没有购买任何东西的唯一用户。我不需要超过 180 天的订单,我需要存储在订单中的用户信息。
我当前的 SQL 查询是这样的:
选择不同的 O.OrdersEmail,O.OrdersName,O.OrdersSurname,O.OrdersPhone,O.OrdersFinishedTime
FROM (SELECT OrdersPhone, MAX(OrdersFinishedTime) AS OrdersFinishedTime FROM Orders
WHERE YEAR(OrdersFinishedTime) >= 2010 GROUP BY OrdersPhone HAVING DATEDIFF(NOW(),MAX(OrdersFinishedTime)) >= 180) 作为 LastOrders
INNER JOIN Orders AS O USING(OrdersPhone,OrdersFinishedTime) ORDER BY OrdersFinishedTime DESC
【问题讨论】:
-
你有什么问题?加入或日期时间函数?
-
该查询返回有关有订单的客户稍后购买的信息
标签: mysql