У меня есть запрос, который будет искать любые «Open_Tollgates», которые имеют статус «6» (не завершен), а также ответственный «Департамент».Подзапрос для мин (значение поля)
Я ТОЛЬКО хочу получить мин (pgAct.Gate_ID) (первый номер Gate_Number, который не является полным).
Проблема в том, что каждый Tollgate (то есть '706') отличается тем, что имеет определенный идентификатор активности (не отображается).
Я знаю, что мне нужно сделать подзапрос, чтобы отфильтровать данные. Как видно ниже, мне по существу понадобится только в первой строке (706 3 Sourcing).
Что вы посоветуете?
Перед подзапроса:
select pgAct.ID as Open_Tollgate, pgAct.Gate_ID as Gate_Number, secGroup.[Group] as Department
from [dbo].[Project_Gate_Activities] pgAct
join [dbo].[Activities] as Act
on pgAct.activity_order = Act.order_id
join [dbo].[Security_Group] as secGroup
on Act.group_id = secGroup.group_id
where pgAct.ID = 706
and status_id = 6
group by pgAct.id, pgAct.gate_id, secGroup.[Group]
Перед подзапроса результирующего набора:
706 3 Sourcing
706 4 Учет
706 4 Финансы
706 4 Логистика
706 5 IT
706 6 Учет
706 6 Финансы
706 6 Покупка
706 7 IT
706 7 Продажи
706 8 Учет
Посмотрите на то, что вы вывесили и спросите себя, если вы могли бы ответьте на этот вопрос, исходя из того, что вы разместили. Мы не знаем ваш проект, структуры таблиц, данные или требования. Мы нуждаемся во всех тех, кто может помочь. Попробуйте посмотреть здесь. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
Вы хотите MIN gate_ID, так почему вы группируете GateID? Не можете ли вы просто удалить его из GROUP BY и поместить MIN в список SELECT? –
Возможный дубликат [Выбрать первую строку в каждой группе GROUP BY?] (Http://stackoverflow.com/questions/3800551/select-first-row-in-each-group-by-group) –