|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.07.2015, 19:19 | #1 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Получение идентификатора самого "позднего" документа
Доброго времени суток!
У меня возник затык с написанием небольшого (?) SQL-запроса, что-то ничего на ум полезного не приходит Имеется бд в Postgres 9.2, в которой находится таблица "documents", с полями Id (bigint), PersonId (bigint), DateOfIssue (date) Из этой таблицы нужно получить идентификаторы (Id) документов по каждому человеку (PersonId), у которых дата выдачи документа (DateOfIssue) максимальна. По каждому человеку нужно получить строго один идентификатор. Если у человека может несколько документов с одинаковой датой выдачи, то выбрать следует наибольший Id Моих крохотных знаний в SQL хватило только на то, чтобы получить дату самого "свежего" документа, но по ней много не наработаешь Код:
Благодарить в репутацию. Проклинать — туда же
|
31.07.2015, 19:34 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
так попробуй
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.07.2015, 19:46 | #3 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Спасибо, в точку
Благодарить в репутацию. Проклинать — туда же
|
31.07.2015, 19:56 | #4 | |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Цитата:
Код:
В разработке: воспроизводственный контур ИТ
|
|
31.07.2015, 20:06 | #5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Код:
Благодарить в репутацию. Проклинать — туда же
|
31.07.2015, 20:21 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Просто max(id)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.07.2015, 20:25 | #7 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Я код вслепую пишу, без сервера, так что могут быть нестыковки.
Еще можно с having попробовать, вообще просто будет: Код:
В разработке: воспроизводственный контур ИТ
|
31.07.2015, 20:31 | #8 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Просто max(id) тоже нельзя,
Цитата:
Благодарить в репутацию. Проклинать — туда же
|
|
31.07.2015, 21:05 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Так на MS SQL 12 прокатило. С group by беда
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.07.2015, 21:11 | #10 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Тогда запрос с аналитической функцией можно использовать для связи с другими таблицами. Скажем, если брать PersonId из таблицы Persons, где Id уникален, distinct делать не придется.
В разработке: воспроизводственный контур ИТ
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" | Alexsandrr | Microsoft Office Excel | 4 | 19.10.2013 14:22 |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Заполнение "шапки" документа в xls через Access | sahtheey | Microsoft Office Access | 7 | 05.10.2009 13:00 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |