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


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'
                             );

以下SQL语句给我以下错误:error Operand type clash: date is incompatible with int

日期列B.BookingDateB.DepartureDate都是数据类型date,而不是int,所以我不确定为什么会遇到此错误?

AND B.ContactID NOT IN ( SELECT B.DepartureDate

您正在比较ContactID,大概是INT与DepartureDate,大概是日期。

我认为您想要:

AND B.ContactID NOT IN
(
    SELECT B.CustomerID FROM Booking B
    WHERE B.DepartureDate >= '2018-04-26'
);

最新更新