Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка по максимальному значению поля 
:(
    Опции темы
malah
Дата 3.10.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 28.10.2006

Репутация: нет
Всего: нет



Привет всем!
Вопрос вот в чем.
Допустим есть таблица с полями name и trans 
   name    |     trans
    serg         01.06.2007
    serg         01.08.2007
    serg         01.07.2007

Нужно получить табличку в которой содержатся имена с максимальной датой транзакции.
 smile 

Конечно можно примерно так сделать
Код

select t.name, t.trans from t, (select t.name name, max(t.trans) m_trans from t group by t.name) g where t.name = g.name and t.trans = g.m_trans


но хотелось бы что то более изящное....
PM MAIL   Вверх
sapun1984
Дата 3.10.2007, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 24.9.2007

Репутация: нет
Всего: нет



Так пойдет?
Код

SELECT * FROM test t WHERE t.trans = (SELECT MAX(trans) FROM test)

PM MAIL   Вверх
malah
Дата 3.10.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 28.10.2006

Репутация: нет
Всего: нет



неа smile нужно чтоб для каждого имени была выбрана одна! строка, содержащая максимальную дату транзакции для ЭТОГО! имени.
Если честно то меня интересует, есть ли какая нибудь конструкция в PL\SQL которая бы это сделала без второго селекта, ибо это тока пример... 
PM MAIL   Вверх
sapun1984
Дата 4.10.2007, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 24.9.2007

Репутация: нет
Всего: нет



Тогда так.Этот вариант подходит
Код

SELECT NAME,MAX(trans) FROM test t GROUP BY NAME 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.