У меня есть два стола, к которым я хочу присоединиться. Первая таблица называется WorkItem
:
Вторая таблица WorkItem_Schedule
:
Я хочу получить первую строку, соединенную с ActualEndDate IS NULL
.
В случае WorkItemId 3 я хочу присоединиться к нему только на WorkItemScheduleId 95. Только первая строка!
Я пробовал этот оператор SQL, но у меня возникли проблемы:
SELECT
W.WorkItemId
,MIN(WS.WorkItemScheduleId) test
,W.WorkItemName
,WS.[PhaseName]
,WS.[StartDate]
,WS.[EndDate]
,WS.[ActualStartDate]
,WS.[ActualEndDate]
FROM
WorkItem W
INNER JOIN
WorkItem_Schedule WS ON W.WorkItemId = WS.WorkItemId
WHERE
WS.ActualEndDate IS NULL
GROUP BY
W.WorkItemId;
Я получаю ошибку
Столбец WorkItem.WorkItemName недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY.
Я погуглил эту ошибку и обнаружил, что мне нужно добавить другие столбцы в список выбора для группировки, поэтому я попробовал этот sql, но он возвращает все расписания, а не отдельный рабочий элемент:
SELECT
W.WorkItemId
,MIN(WS.WorkItemScheduleId) test
,W.WorkItemName
,WS.[PhaseName]
,WS.[StartDate]
,WS.[EndDate]
,WS.[ActualStartDate]
,WS.[ActualEndDate]
FROM
WorkItem W
INNER JOIN
WorkItem_Schedule WS ON W.WorkItemId = WS.WorkItemId
WHERE
WS.ActualEndDate IS NULL
GROUP BY
W.WorkItemId, WS.PhaseName, WS.StartDate, WS.EndDate, WS.ActualStartDate, WS.ActualEndDate;
Пожалуйста помоги! Заранее спасибо!