2013-03-11 20 views
1

在上下文中指定的非布尔型,其中一个条件是出乎意料的时候我将鼠标放置在顶线看到图像的表达式的表达式:在上下文中指定的非布尔型,其中一个条件预计

Sql image problem

SELECT Bookings.Date, Bookings.Timebegan, Bookings.Timefinished, Bookings_1.Date, Bookings_1.Timebegan, Bookings_1.Timefinished, 
       Bookings.RoomID, Bookings_1.RoomID 
FROM  Bookings, 
       Bookings AS Bookings_1 
WHERE Not Nz(([Bookings_1].[Timebegan]>=[Bookings].[Timefinished]) Or 
    ([Bookings_1].[Timefinished]<=[Bookings].[Timebegan]) Or 
    ([Bookings].[RoomID]!=[Bookings_1].[RoomID]) Or 
    ([Bookings].[ID]=[Bookings_1].[ID]),False) 
ORDER BY Bookings.ID, Bookings_1.ID; 

有没有人有任何想法?

+0

您是否正在运行MS Access的查询? – 2013-03-12 00:09:31

+1

Nz是什么?另外,'!='不是有效的SQL。 – 2013-03-12 00:38:22

+0

从您的屏幕截图中看起来您正在SQL Server Management Studio中运行您的查询。 NZ()是一个VBA函数,用于检查参数是否为null,并用空字符串替换,或者在您的情况下:false。这个函数在SQL Server中不存在,因此你得到你的错误。删除NZ并重试。 – failedprogramming 2013-03-12 04:19:53

回答

0

好谜语(德摩根法则提醒;))。试试这个:

WHERE 
    (
     [Bookings_1].[Timebegan] is NULL 
     OR [Bookings].[Timefinished] is NULL 
     OR [Bookings_1].[Timefinished] is NULL 
     OR [Bookings].[Timebegan] is NULL 
     OR [Bookings].[RoomID] is NULL 
     OR [Bookings_1].[RoomID] is NULL 
     OR [Bookings].[ID] is NULL 
     OR [Bookings_1].[ID] is NULL 
     OR 
     (
     [Bookings_1].[Timebegan]<[Bookings].[Timefinished] 
     AND [Bookings_1].[Timefinished]>[Bookings].[Timebegan] 
     AND [Bookings].[RoomID]=[Bookings_1].[RoomID] 
     AND [Bookings].[ID]<>[Bookings_1].[ID] 
     ) 
    ) 
+0

非常感谢它! – Hamoudy 2013-03-12 22:27:09

+0

所以请标记为已回答。谢谢,GL! – www 2013-03-12 22:39:41

+0

完成了,并且非常感谢您的帮助! – Hamoudy 2013-03-12 22:52:28

相关问题