powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ребята помогите с запросом
8 сообщений из 8, страница 1 из 1
Ребята помогите с запросом
    #33122698
Вопросник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АСА 9.0

Допустим есть табличка. Необходимо из нее выбрать только первые записи.
Тоесть, составной ключ из двух полей, id1, id2, и поле даты - field_date, например
id1 id2 field_date
1) 1, 1, '2004-01-01'
2) 1, 2, '2004-02-01'
3) 2, 3, '2004-03-01'
4) 2 4 '2004-04-01'

результат такой, по дате (самые первые даты)
1) 1, 1, '2004-01-01'
2) 2, 3, '2004-03-01'

Заранее благодарю!
...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33122711
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопросник пишет:

> Допустим есть табличка. Необходимо из нее выбрать только первые записи.
> Тоесть, составной ключ из двух полей, id1, id2, и поле даты -
> field_date, например
> id1 id2 field_date
> 1) 1, 1, '2004-01-01'
> 2) 1, 2, '2004-02-01'
> 3) 2, 3, '2004-03-01'
> 4) 2 4 '2004-04-01'
>
> результат такой, по дате (самые первые даты)
> 1) 1, 1, '2004-01-01'
> 2) 2, 3, '2004-03-01'

Странный у тебя результат. 2004-02-01 более первая дата, чем 2004-03-01
Читай help про TOP. Пример:

SELECT TOP 2 *
FROM table_name
ORDER BY field_date

Или я неправильно вопрос понял?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33122812
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from table t1
where t1.id2=(select min(t2.id2) from table t2 where t1.id1=t2.id2)

Оно?
...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33122856
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для АСА 9, если я правильно понял лучше так:
select id1,id2,min(field_date) over partition by id1 as md
from t
where md=field_date;
В синтаксисе не уверен, но смысл такой. Чем мне нравится 9-ка, так это встроенным OLAPом.
...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33126394
Вопросник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Александр Гoлдун
Да, немного не так. ТОР здесь не спасает, мне надо из двух или более записей с одинаковым идентификатором id1 выбрать тока те, у кого самые ранние даты.

to White Owl
select * from table t1
where t1.id2=(select min(t2.id2) from table t2 where t1.id1=t2.id2)

наверное во втором where -- t1.id1=t2.id1 ???
к сожалению min(t2.id2) - тоже не подходит, у меня оба поля newid() -для репликации.
...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33126451
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторк сожалению min(t2.id2) - тоже не подходит, у меня оба поля newid() -для репликации.

тогда нужно добавить дополнительно поле insert time
alter table
add it datetime default current utc timestamp;

и его использовать для сортировки

...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33126607
Вопросник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from t as t1
where t1.id_2=(select min(time_) from t as t2 where t1.id_1=t2.id_1)

не работает!

time_ -current timestamp, ничего не выдает
...
Рейтинг: 0 / 0
Ребята помогите с запросом
    #33126670
Вопросник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой! Простите, это я уже гоню!
Всем спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ребята помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]