2016-05-13 7 views
0

Mit dieser AbfrageAbfrage in Access 2010

SELECT Year, Month, Customer, Cod_user, Int(Sum(hours)) AS hours 
FROM T_Att 
GROUP BY Year, Mounth, Customer, Cod_user 
HAVING (((Year)="2016") AND ((Month)="03") AND ((Customer)="CA")); 

ich folgendes Ergebnis

enter image description here

Wenn Sie die globale Summe (sum) und ein Schlüssel hinzuzufügen, Was muss sich ändern?

enter image description here

Antwort

1

Obwohl ich nicht getestet haben, sollten Sie in der Lage sein, nur ein weiteres Feld hinzufügen:

Dadurch werden alle Stunden für alle Jahre, Monate und Kunden hinzufügen.

SELECT  Year, 
      Month, 
      Customer, 
      Cod_user, 
      Int(Sum(hours)) AS lhours, 
      (
      SELECT SUM(hours) 
      FROM T_Att 
      ) AS GlobalTotal 
FROM  T_Att 
GROUP BY Year, Month, Customer, Cod_user 
HAVING  (((Year)="2016") AND ((Month)="03") AND ((Customer)="CA")); 

Um den GlobalTotal bis 2016 März Gebrauch zu halten:

SELECT  Year, 
      Month, 
      Customer, 
      Cod_user, 
      Int(Sum(hours)) AS lhours, 
      (
      SELECT SUM(hours) 
      FROM T_Att 
      WHERE Year = T1.Year AND Month = T1.Month 
      ) AS GlobalTotal 
FROM  T_Att T1 
GROUP BY Year, Month, Customer, Cod_user 
HAVING  (((Year)="2016") AND ((Month)="03") AND ((Customer)="CA")); 

Hinweis - ich hours-lhours umbenannt habe einen zirkulären Verweis zu vermeiden. Sie sollten auch in Betracht ziehen, und month umzubenennen, da dies Schlüsselworte sind und Probleme verursachen können. Auch
, year und month wären besser als Zahlen und nicht als Text.

+0

Großartig, vielen Dank !!!! – Alan392