Sql server 在SQL Server 2000中查找总计数错误

Sql server 在SQL Server 2000中查找总计数错误,sql-server,sql-server-2000,Sql Server,Sql Server 2000,我写了一个查询来获取总数。但它返回一个语法错误。查询如下: ((SELECT COUNT(*) FROM References WHERE DocumentID = 15354 AND CustomerID = 896 AND ReferenceType = 1) + (SELECT COUNT(*) FROM References WHERE DocumentID = 15354 AND ReferenceType = 0)) AS TotalReference 如何修复

我写了一个查询来获取总数。但它返回一个语法错误。查询如下:

((SELECT COUNT(*) FROM References 
  WHERE DocumentID = 15354 AND CustomerID = 896  AND ReferenceType = 1) 
  + 
(SELECT COUNT(*) FROM References 
 WHERE DocumentID = 15354 AND ReferenceType = 0)) AS TotalReference

如何修复错误?

您缺少count()函数调用的参数,并且在ReferenceType=1之前缺少and(或or)

((SELECT COUNT(*) 
    FROM References 
    WHERE DocumentID = 15354 
    AND CustomerID = 896 
    AND ReferenceType = 1) + 
 (SELECT COUNT(*) 
    FROM References 
    WHERE DocumentID = 15354 
    AND ReferenceType = 0)) AS TotalReference
另外,您是否考虑过只在一个子查询中重试计数

(SELECT COUNT(*) 
    FROM References 
    WHERE DocumentID = 15354 
    AND ((ReferenceType = 1 AND CustomerID = 896)
        OR (ReferenceType = 0))) AS TotalReference

我对SQL Server没有太多的经验,但我认为这是缺少的,而且我认为在数量上需要一个*(在Oracle中这是需要的)。此外,在Oracle中,我们在开始时需要一个SELECT(和来自DUAL的SELECT,但在SQL Server中不需要):

SELECT ((SELECT COUNT(*) FROM [References]
  WHERE DocumentID = 15354 AND CustomerID = 896 AND ReferenceType = 1) +
  (SELECT COUNT(*) FROM [References]
     WHERE DocumentID = 15354 AND ReferenceType = 0))
AS TotalReference
select 
((SELECT COUNT(*) FROM References 
WHERE DocumentID = 15354 
AND CustomerID = 896 
and ReferenceType = 1) 
+ 
(SELECT COUNT(*) FROM References 
WHERE DocumentID = 15354 
AND ReferenceType = 0)
) AS TotalReference