Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server中设计查询或查找错误?_Sql_Sql Server 2005_Database Design - Fatal编程技术网

如何在SQL Server中设计查询或查找错误?

如何在SQL Server中设计查询或查找错误?,sql,sql-server-2005,database-design,Sql,Sql Server 2005,Database Design,我想知道其他人是如何在SQLServer中设计SQL查询的。我只使用“设计查询编辑器”,但有时我觉得我遗漏了一些东西 例如,下面的奇怪查询只返回一些与给定条件匹配的ID(这是一个必需的备件矩阵,如果sp1已更改,则sp2也必须更改)。我对改进持开放态度,但我的主要问题是,我设置了太多或太少的大括号,SQL Server只在第359行(最后一行)中用“错误的语法”对其进行注释 您如何在查询中发现/避免此类错误? SELECT idData FROM tabData WHERE (fiMo

我想知道其他人是如何在SQLServer中设计SQL查询的。我只使用“设计查询编辑器”,但有时我觉得我遗漏了一些东西

例如,下面的奇怪查询只返回一些与给定条件匹配的ID(这是一个必需的备件矩阵,如果sp1已更改,则sp2也必须更改)。我对改进持开放态度,但我的主要问题是,我设置了太多或太少的大括号,SQL Server只在第359行(最后一行)中用“错误的语法”对其进行注释

您如何在查询中发现/避免此类错误?

SELECT  idData FROM tabData
WHERE     (fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/402-22720-0002', 
                                   'A/402-22710-0003', 'A/402-22720-0001', 'A/402-22710-0001'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0004', 
                                   'A/415-22710-0011', 'A/415-22710-0031')))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/402-22720-0002', 
                                   'A/402-22710-0003', 'A/402-22720-0001', 'A/402-22710-0001'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/403-22710-0001'))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0006', 
                                   'A/401-22710-0002'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0009'))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0006', 
                                   'A/401-22710-0002'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0006', 
                                 'A/401-22710-0002'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                   'A/415-22710-0010', 'A/415-22710-0028')))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/321-0000-00292')) AND 
      (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                   'A/415-22710-0010', 'A/415-22710-0028')))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/321-0000-00292')) AND 
      (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/404-22710-0009', 
                                   'A/404-22710-0003', 'A/404-22710-0008', 'A/404-22710-0007', 'A/404-22710-0075', 'A/404-22710-0077', 'A/404-22710-0079'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                   'A/415-22710-0010', 'A/415-22710-0028')))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0005')) AND 
      (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                   'A/415-22710-0010', 'A/415-22710-0028')))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND
       (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))) 
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND
       (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                   'A/415-22710-0010', 'A/415-22710-0028'))))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0003','A/401-22710-0005','A/401-22710-0004','A/401-22710-0001','A/401-22710-0013','A/401-22710-0014','A/401-22710-0015'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                   'A/415-22710-0010', 'A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0003','A/401-22710-0005','A/401-22710-0004','A/401-22710-0001','A/401-22710-0013','A/401-22710-0014','A/401-22710-0015'))) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1204-8457')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1204-8457')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0027')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/412-00000-0010')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0009')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0009')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0007')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0003')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1230-9478')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1222-5301')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
OR (fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                   tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
            WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0015')) AND (NOT EXISTS
          (SELECT     tabDataDetail_3.idDataDetail
            FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                   tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
            WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005')))

提前感谢您的建议。

在编写这样复杂的查询时,我遵循三条规则:

  • 当打开大括号时,立即写下结束大括号以及你想在它们之间写些什么
  • 尽可能创建一个视图,以避免无休止的查询,而是使用具有正确参数的视图(在您的情况下,它将是一个用于反复重复子选择的视图)
  • 一步一步地编写查询,每次都执行查询,并检查结果是否符合预期

  • 获取SSMS 2008,然后每当它给你一个错误,双击它转到该行。继续添加
    (关闭),直到它不再突出显示它(这表示与先前未匹配的
    )匹配)

    至于
    如何在查询中发现/避免此类错误?
    ,请保持良好的格式结构,以便在不匹配时立即显示括号

    SELECT  idData FROM tabData
    WHERE     (fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/402-22720-0002', 
                                       'A/402-22710-0003', 'A/402-22720-0001', 'A/402-22710-0001'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0004', 
                                       'A/415-22710-0011', 'A/415-22710-0031')))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/402-22720-0002', 
                                       'A/402-22710-0003', 'A/402-22720-0001', 'A/402-22710-0001'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/403-22710-0001'))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0006', 
                                       'A/401-22710-0002'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0009'))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0006', 
                                       'A/401-22710-0002'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0006', 
                                     'A/401-22710-0002'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                       'A/415-22710-0010', 'A/415-22710-0028')))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/321-0000-00292')) AND 
          (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                       'A/415-22710-0010', 'A/415-22710-0028')))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/321-0000-00292')) AND 
          (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/404-22710-0009', 
                                       'A/404-22710-0003', 'A/404-22710-0008', 'A/404-22710-0007', 'A/404-22710-0075', 'A/404-22710-0077', 'A/404-22710-0079'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                       'A/415-22710-0010', 'A/415-22710-0028')))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0005')) AND 
          (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                       'A/415-22710-0010', 'A/415-22710-0028')))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND
           (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))) 
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND
           (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                       'A/415-22710-0010', 'A/415-22710-0028'))))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0003','A/401-22710-0005','A/401-22710-0004','A/401-22710-0001','A/401-22710-0013','A/401-22710-0014','A/401-22710-0015'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013', 
                                       'A/415-22710-0010', 'A/415-22710-0028'))))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005')))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/8CS-22710-0004')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName IN ('A/401-22710-0003','A/401-22710-0005','A/401-22710-0004','A/401-22710-0001','A/401-22710-0013','A/401-22710-0014','A/401-22710-0015'))) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1204-8457')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1204-8457')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0027')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028'))))))))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/412-00000-0010')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0009')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName IN ('A/415-22710-0013','A/415-22710-0010','A/415-22710-0028')))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0009')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0007')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0003')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1230-9478')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
    OR(fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = '1222-5301')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))
    OR (fiModel = 775) AND EXISTS(SELECT     tabDataDetail_5.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_5 INNER JOIN
                                       tabSparePart AS tabSparePart_5 ON tabDataDetail_5.fiSparePart = tabSparePart_5.idSparePart
                WHERE      (tabData.idData = tabDataDetail_5.fiData) AND (tabDataDetail_5.Material_Quantity >= 1) AND (tabSparePart_5.SparePartName = 'A/415-22710-0015')) AND (NOT EXISTS
              (SELECT     tabDataDetail_3.idDataDetail
                FROM          tabDataDetail AS tabDataDetail_3 INNER JOIN
                                       tabSparePart AS tabSparePart_3 ON tabDataDetail_3.fiSparePart = tabSparePart_3.idSparePart
                WHERE      (tabData.idData = tabDataDetail_3.fiData) AND (tabDataDetail_3.Material_Quantity >= 1) AND (tabSparePart_3.SparePartName = 'A/415-22710-0005'))))))))))
    

    感谢您使用突出显示的对应括号提供的提示。这在SQL Server 2005中也是可能的(我还没有注意到),并帮助我查找/添加缺少的括号。感谢您的建议,我会记住这一点。同时,我按照Richard的建议,通过查看突出显示的对应括号找到了缺少的括号。