2016-05-16 5 views
1

Это моя проблема.Доступ 2010 Сумма неправильного результата

Первый шаг. Я суммирую колонку HH (псевдоним SUM_Original_values ​​), и я получаю 419. Этот результат верен. (См ниже рис)

enter image description here

Второй шаг. Я хочу взять только INT значения столбца HH, и я получаю 417. Этот результат правильный. (См ниже рис)

enter image description here

Третий шаг. Я хочу, чтобы создать столбец Global_Int_Sum_HH (416), но это значение отличается от Int_Sum_HH (417)

enter image description here

Почему результаты Дифференц?

Это запрос

SELECT 
Year, 
Month, 
Customer, 
User, 
Int(Sum(HH)) AS Int_Sum_HH, 

(
SELECT (int(sum(int(HH)))) AS Global_Int_Sum_HH 
FROM T_Att 
HAVING (((Year)="2016") AND ((month)="03") AND ((Customer)="FC")); 
) AS Global_Int_Sum_HH, 

Customer + Str(Global_Int_Sum_HH) AS [KEY] 

FROM T_Att 

GROUP BY Year, Month, Customer, User 
HAVING (((Year)="2016") AND ((Month)="03") AND ((Customer)="FC")); 

ответ

1

Мне кажется, что есть несоответствие в вашем заказе операций.

В одном случае вы int в sum, и во втором случае вы sumint.

SELECT 
Year, 
Month, 
Customer, 
User, 
Sum(Int(HH)) AS Int_Sum_HH, 
--^changed order of events to match sub-query 
(
-- v removed redundant int() 
SELECT sum(int(HH)) AS Global_Int_Sum_HH 
FROM T_Att 
HAVING (((Year)="2016") AND ((month)="03") AND ((Customer)="FC")); 
) AS Global_Int_Sum_HH, 

Customer + Str(Global_Int_Sum_HH) AS [KEY] 

FROM T_Att 

GROUP BY Year, Month, Customer, User 
HAVING (((Year)="2016") AND ((Month)="03") AND ((Customer)="FC")); 

выше корректировка будет сделать «правильный» ответ = 416 для обоих значений. Если бы вы изменили свой порядок операций как на Int(Sum(HH)), тогда значение Global_Int_Sum_HH равнялось бы 419, а ваш столбец Int_Sum_HH вместо этого был бы 417.

+1

Несвязанный: я также рекомендую вам заменить ваши предложения «HAVING» для предложений «ГДЕ» для повышения производительности. – Sturgus

+0

Int (Sum (HH)) даст 419 для глобального, а не 417. – OpiesDad

+0

@OpiesDad, вы правы, я отредактирую свой ответ. – Sturgus

Смежные вопросы