Tsql 操作数类型冲突:日期与子查询中的int/NOT不兼容

Tsql 操作数类型冲突:日期与子查询中的int/NOT不兼容,tsql,Tsql,下面的SQL语句给了我以下错误:error操作数类型冲突:date与int不兼容 日期列B.BookingDate和B.DepartureDate都是数据类型date,而不是int,因此我不确定为什么会出现此错误 和B.联系人ID不在(选择B.离开日期 您正在比较ContactID,可能是一个int,而DepartureDate,可能是一个日期 我想你想要: SELECT Br.BusinessDivision,B.BookingDate, B.DepartureDate, B.Customer

下面的SQL语句给了我以下错误:
error操作数类型冲突:date与int不兼容


日期列
B.BookingDate
B.DepartureDate
都是数据类型
date
,而不是
int
,因此我不确定为什么会出现此错误

和B.联系人ID不在(选择B.离开日期

您正在比较
ContactID
,可能是一个int,而
DepartureDate
,可能是一个日期

我想你想要:

SELECT Br.BusinessDivision,B.BookingDate, B.DepartureDate, B.CustomerID, C.FirstName, C.SurName
FROM Booking B
    INNER JOIN Customer C
        ON C.ContactID = B.ContactID
    INNER JOIN Branch Br
        ON Br.BranchID = B.BranchID
WHERE B.BookingDate
      BETWEEN '2015-04-01' AND '2018-04-26'
      AND Br.BusinessDivision IN ( 'Retail', 'TVSales' )
      AND B.ContactID NOT IN (
                                 SELECT B.DepartureDate FROM Booking B WHERE B.DepartureDate >= '2018-04-26'
                             );

我知道我哪里出错了,是的!将
ContactID
与完全错误的列(doh)进行比较。有一个类似的
DepartureDate
列,类型为
int
,而不是
date
。谢谢!
AND B.ContactID NOT IN
(
    SELECT B.CustomerID FROM Booking B
    WHERE B.DepartureDate >= '2018-04-26'
);