#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;