2016-05-13 7 views
0

С помощью этого запросазапросов в 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")); 

я получаю следующий результат

enter image description here

Если вы хотите добавить глобальной суммы (сумма) и ключ, что нужно изменить?

enter image description here

ответ

1

Хотя я не проверял, вы должны быть в состоянии просто добавить еще одно поле:

Это добавит все часы в течение всех лет, месяцев и клиентов.

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")); 

Чтобы сохранить GlobalTotal до марта 2016 года использования:

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")); 

Примечание - Я переименовал hours в lhours, чтобы избежать циклическую ссылку. Вы также должны рассмотреть возможность переименования year и month, поскольку это ключевые слова и могут вызвать проблемы.
Кроме того, year и month были бы лучше, чем цифры, а не текст.

+0

Отлично, спасибо большое !!!! – Alan392