Ms access 访问错误的结果
这是我的问题 第一步。 我对HH列求和(别名求和原始值),得到419。这个结果是正确的。(见下图) 第二步。 我只想取HH列的INT值,得到417。这个结果是正确的。(见下图) 第三步。 我想创建一列Global\u Int\u Sum\u HH(416),但此值不同于Int\u Sum\u HH(417) 为什么结果不同 这就是问题所在Ms access 访问错误的结果,ms-access,sum,int,Ms Access,Sum,Int,这是我的问题 第一步。 我对HH列求和(别名求和原始值),得到419。这个结果是正确的。(见下图) 第二步。 我只想取HH列的INT值,得到417。这个结果是正确的。(见下图) 第三步。 我想创建一列Global\u Int\u Sum\u HH(416),但此值不同于Int\u Sum\u HH(417) 为什么结果不同 这就是问题所在 SELECT Year, Month, Customer, User, Int(Sum(HH)) AS Int_Sum_HH, (
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"));
在我看来,你的行动顺序不一致 在一个实例中,您是
int
和sum
,在第二个实例中,您是sum
和int
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\u Int\u Sum\u HH
值将等于419
,而Int\u Sum\u HH
列将改为417
。无关:我还建议您将“HAVING”子句替换为“WHERE”子句以提高性能。Int(Sum(HH))将为全球一级提供419,而不是417。