MySQL查询帮助需要获得超过180天没有购买任何东西的客户!

时间:2010-10-07 08:31:53

标签: mysql

我有一个表订单,用于存储有关订单的信息(包括OrdersName,OrdersSurname,OrdersEmail,OrdersPhone),这是我需要获取的信息。

它包含一个OrdersFinishedTime字段,它是一个DateTime字段,用于存储订单完成时的数据。

我需要做的是从Orders表中为超过180天没有购买任何东西的用户选择OrdersName,OrdersSurname,OrdersEmail,OrdersPhone。

那就是 - 我需要找到超过180天前购买LAST UNIQUE的独特用户。

提前致谢!

编辑:

我知道如何查找超过180天的所有记录,但我需要的记录是180天以上,并且在该日期之后没有更多订单(对于该特定用户)!

EDIT2: 你可能没有通过阅读这个问题。我需要找到超过180天没有购买任何东西的独特用户。我不需要超过180天的订单,我需要存储在订单中的用户信息。

我当前的SQL查询是这样的:

SELECT DISTINCT O。OrdersEmail,O。OrdersName,O。OrdersSurname,O。OrdersPhone,O。{{1} } FROM(SELECT OrdersFinishedTime,MAX(OrdersPhone)AS OrdersFinishedTime FROM OrdersFinishedTime WHERE YEAR(Orders)> = 2010 GROUP BY OrdersFinishedTime HATED DATEDIFF(NOW(),MAX(OrdersPhone))> = 180)AS LastOrders INNER JOIN OrdersFinishedTime正在使用(OrdersOrdersPhone)订购OrdersFinishedTime DESC

4 个答案:

答案 0 :(得分:0)

SELECT OrdersName,OrdersSurname,OrdersEmail,OrdersPhone from Orders
WHERE TO_DAYS(NOW()) - TO_DAYS(OrdersFinishedTime) > 180
ORDER BY OrdersFinishedTime DESC
LIMIT 1;

超过180天前的最后订单。

答案 1 :(得分:0)

试试这个:

SELECT `OrdersName`, `OrdersSurname`, `OrdersEmail`, `OrdersPhone` FROM `Orders ` WHERE `OrdersFinishedTime` < SUBDATE(NOW(), 180);

答案 2 :(得分:0)

肯定会有以下类似的事情。:

SELECT DISTINCT OrdersName,OrdersSurname,OrdersEmail,OrdersPhone FROM Orders
   WHERE OrdersID IN 
       (SELECT OrdersID FROM Orders 
        WHERE OrdersFinishedTime < (NOW() - INTERVAL 180 DAY))

答案 3 :(得分:0)

SELECT * FROM Orders WHERE OrdersFinishedTime&lt; DATE_SUB(NOW(),INTERVAL 180 DAY)