У меня есть эти таблицы:Как разрешить эту операцию без использования GROUP BY в "SQL"
- шаги (stepId_, stepName)
- stepOfProject (idProject_, stepId_, dateofStart)
- Project (IdProject_ , idResponsable)
Я хочу, чтобы получить последний шаг в каждом проекте работает с этим запросом:
select stepName
from step
where step.step=(select max(idstep) from stepOfProject where idProject=1) ;
Но он работает только для номера проекта 1; Я хочу получить для всех projectId.
Почему вы не хотите использовать «группу»? – nick
@nick Интересно, связана ли проблема с печально известной «Столбец« foo »Microsoft SQL Server в списке выбора, потому что она не содержится ни в агрегатной функции, ни в предложении GROUP BY». ошибка, даже если столбец-нарушитель имеет функциональную зависимость от столбца в предложении GROUP BY. –
@tepples: это дефект (более ранних выпусков?) Стандартного SQL, а не просто проблема в SQL Server. То есть многие другие СУБД также налагают это ограничение, в конечном счете, потому что стандарт SQL говорит, что это должно произойти. –