我找不到问题。我有很多桌子相互连接在一起。我需要从FormInstances
表(应计数Id
列)中获取表格实例的数量,但它会回调错误的数据。SQL。 COUNT()函数的错误结果
所以我的查询是这样的:
DECLARE @dateStart DATE = NULL,
@dateEnd DATE = NULL,
@workshop NVARCHAR(60) = '',
@shiftNr NVARCHAR(60) = '',
@article NVARCHAR(60) = '',
@controllier NVARCHAR(60) = 'Name of Controlier'
SELECT COUNT(FI.Id) AS [Count of Instances]
FROM FormInstances AS FI
LEFT JOIN FormFields AS FF
ON FI.FormVersionId = FF.FormVersionid
LEFT JOIN .....
WHERE
FF.Id = FV.FormFieldId AND
FI.Id = ...
输出NOW:
Count of Instances
414400
414400
414400
414400
384800
输出应为:
Count of Instances
5
如果我传递给选择条款:FI.Id
( Id
列FormInstances
表)在以下几点:
SELECT COUNT(FI.Id) AS [Count of Instances],
FI.Id AS [Instance Ids]
FROM....
我得到了正确的Instance Ids
但情况相同,错误计数:
Count of Instances Instance Ids
414400 23
414400 24
414400 25
414400 26
384800 52
那么,为什么它会在返回的实例计数不正确?
你想在FormInstances中计算什么?如果您使用计数和主键,您将始终得到1. – Juan 2015-03-19 13:16:24
我想根据此WHERE条款从FormInstances表中获取“Id”的数量。 – 2015-03-19 13:19:17
也许是在其他表中作为外键的形式id的计数? 如果这是正确的,请使用此信息将计数移到另一个表。 – Juan 2015-03-19 13:23:29