1

希望你们一切都好。我需要查询。请帮我解决这个问题。

这是场景。我们有两张桌子

  1. 顾客
  2. 订单

我只想得到那些在过去三个月内没有订购任何东西的客户

请帮助我。我卡住了。提前致谢

4

3 回答 3

3

在不知道您的确切数据结构的情况下,我猜测以下内容:

Select  CustomerCode,
    CustomerName

From dbo.Customers
where CustomerCode Not in (
               Select CustomerCode
               From dbo.Orders
               Where OrderDate > Cast(Floor(Cast(dateAdd(Month,-3, GetDate()) as Float))as DateTime)
              )
于 2011-05-09T11:04:47.423 回答
2
SELECT customer_number
  FROM Customers
EXCEPT 
SELECT customer_number
  FROM Orders
 WHERE DATEADD(MONTH,-3, CURRENT_TIMESTAMP) < order_date;
于 2011-05-09T11:43:08.093 回答
1
;WITH CTE_LastOrder (CustomerId, LastOrderDate) As
(
SELECT CustomerId, MAX(OrderDate) LastOrderDate
FROM Orders 
GROUP By CustomerId
)
SELECT * from Customers C
JOIN CTE_LastOrder LO ON C.CustomerId = LO.CustomerId
WHERE LO.LastOrderDate > Cast(Floor(Cast(dateAdd(Month,-3, GetDate()) as Float))as DateTime) 

以上是 SQL Server 的基本 sql。语法可能略有不同。

于 2011-05-09T11:06:06.643 回答