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