Я не могу найти проблему. У меня много таблиц, соединенных друг с другом. Мне нужно получить количество экземпляров формы из таблицы 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 = ...
ВЫХОД ДЛЯ ТЕПЕРЬ:
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
Я хочу получить счет 'Id' из таблицы' FormInstances' в зависимости от этого предложения WHERE. –
Может быть, это счет id of forminstances как внешний ключ в другой таблице? Если это правильно, переместите счетчик в другую таблицу с этой информацией. – Juan