sql join没有显示一些记录

时间:2016-01-19 19:54:40

标签: sql-server

我试图查找已下订单的所有客户,但在最后一个订单日期之后没有回拨。

我当前的查询:

SELECT dbo.[Order].CustomerId, MAX(OrderDate) AS OrderDate, NextCallbackDate, UserName
FROM dbo.[Order] 
LEFT OUTER JOIN (SELECT MAX(CallbackDate) NextCallbackDate, CustomerID 
                 FROM AccountCallbacks
                 GROUP By CustomerId
               ) callbacks ON callbacks.CustomerID = dbo.[Order].CustomerID
LEFT OUTER JOIN dbo.aspnet_Users users ON dbo.[Order].UserID = users.UserId
WHERE (PaymentTypeID IN (2, 3, 4, 6, 8)) 
  AND OrderDate >= NextCallbackDate
GROUP BY dbo.[Order].CustomerID, dbo.[Order].OrderDate,callbacks.NextCallbackDate, UserName
ORDER BY dbo.[Order].CustomerID 

表:

AccountCallBacks:

[CallbackID] [int] IDENTITY(1,1) NOT NULL,
[UserID] [uniqueidentifier] NOT NULL,
[CustomerID] [int] NOT NULL,
[Created] [datetime] NOT NULL,
[CallbackDate] [date] NOT NULL,
[Enabled] [bit] NOT NULL,
[CallbackTimeID] [int] NULL,
[GaryCust] [bit] NULL,
[NotInterestedReasonID] [int] NULL

订单表:

[OrderID] [int] IDENTITY(1,1) NOT NULL,
[CustomerID] [int] NULL,
[UserID] [uniqueidentifier] NULL,
[OrderDate] [datetime] NOT NULL,
[PaymentTypeID] [int] NULL,
[PaymentStatusID] [int] NOT NULL,
[PaymentDate] [datetime] NULL,
[TransactionRef] [varchar](50) NULL

aspnet_Users表是通常的.net成员用户表

修改

道歉!我从来没有真正说出错了!我的查询并没有告诉我我期望结果集中特定CustomerID的数据行之一是什么。不,每个CustomerID都应该至少有一个AccountCallbacks.CallbackDate,因为我加入了dbo。[Order]表,如果没有首先进入AccountCallbacks表,他们就不会在那里。

随时提出任何其他信息,非常感谢帮助。

0 个答案:

没有答案