Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом / 22 сообщений из 22, страница 1 из 1
29.03.2005, 13:09
    #32986052
Помогите с запросом
Есть таблица: t
NNUM (наименование), PRICE (цена), DATA (дата изменения цены)

Нужно выбрать для каждого наименования только последнюю измененную цену и дату...
Если использовать max(data) то нужна группировка по полю PRICE - получается не то, что надо...
...
Рейтинг: 0 / 0
29.03.2005, 13:25
    #32986119
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
select a.* from t a where exists (select max(b.DATA) from t b where b.NNUM=a.NNUM group by b.NNUM)
...
Рейтинг: 0 / 0
29.03.2005, 13:40
    #32986158
Помогите с запросом
Я что-то подобное пробовал,
так он ругается на max(b.DATA) в подзапросе
...
Рейтинг: 0 / 0
29.03.2005, 13:44
    #32986173
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
max([b.DATA])
...
Рейтинг: 0 / 0
29.03.2005, 13:47
    #32986189
Помогите с запросом
и это не помогает... =)
...
Рейтинг: 0 / 0
29.03.2005, 13:49
    #32986197
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Напиши как ругается.
...
Рейтинг: 0 / 0
29.03.2005, 13:50
    #32986200
Помогите с запросом
select * from t group by NNUM having data = max(data)
...
Рейтинг: 0 / 0
29.03.2005, 14:01
    #32986230
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Про select a.* from t a where exists (select max(b.DATA) from t b where b.NNUM=a.NNUM group by b.NNUM) забудь.
select a.* from t a where a.Data in (select max(b.DATA) from t b where group by b.NNUM)
...
Рейтинг: 0 / 0
29.03.2005, 14:03
    #32986233
Помогите с запросом
ругается : subquery is invalid
если убрать аггретатную функцию то все проходит, но соответственно результат не тот!

Дмитрий: Having clause is invalid - этот вариант я тоже пробовал
...
Рейтинг: 0 / 0
29.03.2005, 14:07
    #32986248
Помогите с запросом
тока что проверил у себя - работает без проблем
...
Рейтинг: 0 / 0
29.03.2005, 14:07
    #32986249
Помогите с запросом
Alexmed: в последнем варианте просто выводятся все записи таблицы!
...
Рейтинг: 0 / 0
29.03.2005, 14:12
    #32986267
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Геннадий ПетровичAlexmed: в последнем варианте просто выводятся все записи таблицы!
Этого не может быть. Где то ошибся. И еще, where в подзапросе я забыл убрать.
...
Рейтинг: 0 / 0
29.03.2005, 14:17
    #32986285
Помогите с запросом
Мамой клянусь - выводятся все цены... а про where я понял...
блин вроде задание не сложное, а решения никак не найти... обидно
...
Рейтинг: 0 / 0
29.03.2005, 14:19
    #32986297
Помогите с запросом
Fox какой версии?
Таблица большая? Если не очень - кинь на мыло, посмотрю...
...
Рейтинг: 0 / 0
29.03.2005, 14:22
    #32986309
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
И мне. Интересно.
...
Рейтинг: 0 / 0
29.03.2005, 14:29
    #32986335
Помогите с запросом
Таблицу выслал...
...
Рейтинг: 0 / 0
29.03.2005, 14:36
    #32986369
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Геннадий ПетровичТаблицу выслал...
Как же все записи, если в t 37085 записей, а в селекте - 36584
...
Рейтинг: 0 / 0
29.03.2005, 14:48
    #32986410
Помогите с запросом
Ну все равно это не то, что нужно....
должно быть около 6000
...
Рейтинг: 0 / 0
29.03.2005, 14:54
    #32986427
Помогите с запросом
Ну все равно это не то, что нужно....
должно быть около 6000
...
Рейтинг: 0 / 0
29.03.2005, 15:03
    #32986458
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Да что то сегодня сразу и не соображается

SELECT a.* from t a WHERE a.Data in (select MAX(b.Data) Date FROM t b WHERE b.nnum=a.nnum)
...
Рейтинг: 0 / 0
29.03.2005, 15:07
    #32986475
Помогите с запросом
Работает!
Низкий поклон!
=)
...
Рейтинг: 0 / 0
30.03.2005, 02:19
    #32987548
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Hi Геннадий Петрович!

Вопрос из разряда FAQ - например описан на сайте Михаила Дроздова. Имеет несколько решений - в зависимости от версии фокса. В том числе и без корреляции подзапроса (в более старых версиях фокса работает несколько быстрее - в VFP9 оптимизатор по сути приводит их к одному плану выполнения):

SELECT * FROM t ;
WHERE STR(t.nnum) + DTOS(t.data) IN;
(SELECT STR(t.nnum) + DTOS(MAX(t.data));
FROM t ;
GROUP BY t.nnum)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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