Sql server sql连接未显示某些记录
我试图找到所有下过订单但在上次订单日期后没有回拨的客户 我当前的查询:Sql server sql连接未显示某些记录,sql-server,Sql Server,我试图找到所有下过订单但在上次订单日期后没有回拨的客户 我当前的查询: SELECT dbo.[Order].CustomerId, MAX(OrderDate) AS OrderDate, NextCallbackDate, UserName FROM dbo.[Order] LEFT OUTER JOIN (SELECT MAX(CallbackDate) NextCallbackDate, CustomerID FROM AccountCallback
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
表:
帐户回调:
[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的一行数据不在结果集中。不,当我加入dbo.[Order]表时,每个CustomerID都应该至少有一个AccountCallbacks.CallbackDate,如果没有先进入AccountCallbacks表,它们就不会在那里
请随时询问任何其他信息,我们非常感谢您的帮助。是否保证每个客户ID都会收到回访?如果没有,WHERE子句中的“OrderDate>=NextCallbackDate”将消除这些行。当前查询有什么问题?你有错误吗?我已经更新了我的问题!谢谢当您说“其中一行数据”不在结果集中时,您的意思是customerID没有显示,还是该customerID的结果不正确?如果是前者,唯一的原因是它不符合
WHERE
子句中的条件。嘿,我的意思是,我的结果集中缺少一个CustomerID,但它们确实符合我所能看到的条件。