У меня есть хранимая процедура, которая проходит по месяцам финансового года и выполняет подсчет элементов в каждом месяце. Я точно знаю, что есть 176 элементов, но когда я запускаю это, он возвращает общее количество 182. Я попытался удалить одну секунду из @EndDate, но тогда мой общий счет был 165. Так что я либо считаю элементы дважды, либо не считая их всех. Может кто-нибудь помочь с тем, что я делаю не так здесь? Ниже приведена урезанная версия того, что я делаю:
DECLARE @Date DATETIME
DECLARE @EndDate DATETIME
SELECT @Date = CAST((@Year - 1) as VARCHAR) + '-07-01'
SELECT @EndDate = DATEADD(Month, 1, @Date)
DECLARE @Count INT
SELECT @Count = 0
WHILE @Count < 12
BEGIN
SELECT
COUNT(yai.ID)
FROM
table_1 yai
INNER JOIN table_2 yat ON yai.ID = yat.ID
WHERE
(yat.Date_Received BETWEEN CONVERT(VARCHAR, @Date, 101) AND CONVERT(VARCHAR, @EndDate, 101)) AND
yai.Pro_Type = @Value AND yat.Type = 'PC'
SELECT @Count = @Count + 1
SELECT @Date = DATEADD(MONTH, 1, @Date)
SELECT @EndDate = DATEADD(MONTH, 1, @EndDate)
END