#sql #sql-server-2008
#sql #sql-server-2008
Вопрос:
У меня есть база данных с несколькими датами для одного и того же уникального идентификатора. Я пытаюсь найти первую (минимальную) и последнюю (максимальную) дату для каждого уникального идентификатора. Я хочу, чтобы результатом было: уникальный идентификатор, первая дата, последняя дата, поле 1, поле 2, поле 3
Select max(date_Executed) as Last_Date,
(select unique_ID, MIN(date_Executed)as First_Date
from Table_X
group by unique_ID, Field1, field2,field3
)
from Table_X
where unique_ID = unique_ID
group by unique_ID, Field1, field2,field3
order by unique_ID,First_Permit_Date
Я получаю сообщение об ошибке:
В списке выбора может быть указано только одно выражение, если подзапрос не введен с помощью EXISTS . Сообщение 207, уровень 16, состояние 1, строка 19 Недопустимое имя столбца ‘First_Permit_Date’.
Я новичок в SQL… Спасибо за вашу помощь-
Ответ №1:
почему бы не просто выбрать с помощью group by
Select max(date_Executed) as Last_Date, MIN(date_Executed) as First_Date
from Table_X
group by unique_ID, Field1, field2,field3
order by unique_ID,First_Permit_Date
Вы можете использовать более одной функции агрегирования в select .. (с тем же предложением group by)
Комментарии:
1. @Gross . объясните лучше, если вы прокомментируете.. вам нужна какая-то другая поддержка ..?
2. В случае, если ваши поля даты могут быть
null
, например, когдаdate_Executed
еще не произошло, и вы хотитеnull
иметь минимальное значение, если оно присутствует, вам нужно будет сделать что-то вродеmin(isnull(date_Executed, convert(datetime, 0))) as First_Date
.3. @KentWeigel правильно .. если значение равно нулю, вы можете управлять этим способом .. спасибо
4. это ответило на мой вопрос. Спасибо за вашу помощь!
Ответ №2:
Разве это не должно быть что-то вроде этого? У меня нет дополнительной информации о ваших таблицах, но второй оператор ‘select’, похоже, вызывает ошибку.
SELECT unique_ID, min(date_Executed) as First_Date, max(date_Executed) as Last_Date, field1, field2, field3
FROM Table_X
GROUP BY unique_ID, Field1, field2, field3
order by unique_ID, First_Permit_Date
Комментарии:
1. Наверное, я делал это так сложно …! Спасибо!