Как суммировать часы заказа на работу оборудования по пользователю

#sql-server

#sql-сервер

Вопрос:

Я пытаюсь показать каждому пользователю и суммировать общее количество часов каждого пользователя. Если у пользователя 0 рабочих часов, я хочу показать ноль рядом с этим пользовательским номером в столбце Рабочие часы. То, что у меня есть ниже, покажет мне каждого пользователя, но это дает мне общее количество рабочих часов в каждой строке, а не конкретную строку UserNm.

 Select a.UserNm, sum(b.hrs) WorkOrderHours
from Appuser a, EquipWorkOrderHrs b
Where a.DelFlg = 0 Group by a.UserNm Order by UserNm
  

Комментарии:

1. Как вы определяете время пользователя? Есть ли у вас столбец в таблице EquipWorkOrderHrs для идентификации UsrNm?

2. Правильное объединение решит вашу проблему. PS примерные данные и ожидаемые результаты создают гораздо лучший вопрос.

Ответ №1:

Я думаю, вы ищете что-то вроде этого

 Select a.UserNm, sum(isnull(b.hrs, 0)) WorkOrderHours
from Appuser a
     left join
     EquipWorkOrderHrs b on a.UserNm=b.UserNm
Where a.DelFlg = 0 
Group by a.UserNm
Order by a.UserNm;
  

Комментарии:

1. Пришлось изменить его, чтобы он выглядел как идентификатор пользователя

2. Выберите.UserNm, суммируйте (isnull(b.hrs, 0)) Рабочие часы от Appuser a слева присоедините EquipWorkOrderHrs b к.userId=b.userId Где.DelFlg = 0 Группируйте по.UserNm Заказ по.UserNm;