【问题标题】:MySQL query help needed to get clients who haven't bought anything in more than 180 days!需要 MySQL 查询帮助来获得超过 180 天没有购买任何东西的客户!
【发布时间】: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


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    SELECT * FROM Orders WHERE OrdersFinishedTime

    【讨论】:

      【解决方案3】:
      SELECT OrdersName,OrdersSurname,OrdersEmail,OrdersPhone from Orders
      WHERE TO_DAYS(NOW()) - TO_DAYS(OrdersFinishedTime) > 180
      ORDER BY OrdersFinishedTime DESC
      LIMIT 1;
      

      180 多天前的最后一个订单。

      【讨论】:

        【解决方案4】:

        当然,像下面这样的东西可以解决问题。:

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

        【讨论】:

        • 这将返回完成日期超过 180 天前的所有订单...我需要的只是超过 180 天前的 LAST 订单
        • 现在修改为仅根据订单日期拉出最后一个客户
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-16
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        相关资源
        最近更新 更多