![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналогия TOP 1 [Paradox]
savv © (2005-05-20 08:54:00)Здравствуйте все у меня вопрос:
Как в Paradox выбрать первую запись.
Johnmen (2005-05-20 10:38:00) [21]>Max Zyuzin © (20.05.05 10:35) [12]
Не, первая не самая частая. Вот так будет самая:
ORDER BY 1 DESC
Johnmen (2005-05-20 10:36:00) [22]Хм... Вот в [0] он тоже сказал ключевую фразу "Как в Paradox выбрать первуюзапись."
lexer (2005-05-20 10:36:00) [23][10] Nikolay M. © (20.05.05 10:32)
>максимум не TabNom, а count-а.
согласен, одним запросом ИМХО это не реализовать, надо делать или предсталение/процедурку, из которых брать макс, или доставать все записи в приложение и там отбирать.
Max Zyuzin (2005-05-20 10:35:00) [24]>Johnmen © (20.05.05 10:32) [9]
Жень посмотри внимательно на savv (20.05.05 10:09) [4]
Он как раз и выберает количество потом сортирует, - первая запись самая частая и выходит.
Nikolay M. (2005-05-20 10:34:00) [25]
> Johnmen © (20.05.05 10:32) [9]
> Кто говорил, что самые частые ? Вроде бы самую первую ?
Автор в [4] сказал. Это я поторопился, потому что увидел у него в запросе order by patent.TabNom desc.
Nikolay M. (2005-05-20 10:32:00) [26][5] и [6] - фтопку.
Ессесно, надо брать максимум не TabNom, а count-а.
Johnmen (2005-05-20 10:32:00) [27]>уж точно не самые частые записи
Кто говорил, что самые частые ? Вроде бы самую первую ?
Виталий Панасенко (2005-05-20 10:31:00) [28]
> savv (20.05.05 10:09) [4]
> А в SQL никак ? Мне нужно выбрать те записи значение некоторых
> полей встречаются чаще всех. Вот мой запрос:
> SELECT Count(*), patent.TabNom
> FROM PATENT INNER JOIN
> OBJECT ON PATENT.KODOBJECT = OBJECT.KODOBJECT
> INNER JOIN
> DOCUMENT ON PATENT.NOMDOK = DOCUMENT.NOMDOK
> INNER JOIN
> VLADELEC ON PATENT.TABNOM = VLADELEC.TABNOM
> group by patent.TabNom
> order by patent.TabNom desc
А чем тебя это не устраивает ? Как определить границу того, что это уже не часто встречающиеся ?.. НД перебираешь, и смотришь на нижнюю границу... Разница ?
lexer (2005-05-20 10:25:00) [29][6] Nikolay M. © (20.05.05 10:19)
???
и что по вашему достанет этот запрос?
>WHERE
> PATENT.TabNom = ( MAX (patent2.TabNom) ....
уж точно не самые частые записи
Nikolay M. (2005-05-20 10:19:00) [30]Сорри, ессесно так:
> добавить в WHERE нечто вроде
>
> ...
> WHERE
> PATENT.TabNom = (SELECT MAX (patent2.TabNom) FROM
> PATENT patent2INNER JOIN
> OBJECT ON patent2.KODOBJECT = OBJECT.KODOBJECT
> INNER JOIN
> DOCUMENT ON patent2.NOMDOK = DOCUMENT.NOMDOK
> INNER JOIN
> VLADELEC ON patent2.TABNOM = VLADELEC.TABNOM
> )
Nikolay M. (2005-05-20 10:18:00) [31]
> Виталий Панасенко (20.05.05 10:06) [3]
> АДО такое умеет.. И с парадоксом - тоже
АДО, видимо, какими-то иными способами работает, астральными...
> savv (20.05.05 10:09) [4]
> А в SQL никак ?
добавить в WHERE нечто вроде
...
WHERE
PATENT.TabNom = (SELECT MAX (patent2.TabNom) FROM PATENT patent2 INNER JOIN
OBJECT ON PATENT.KODOBJECT = OBJECT.KODOBJECT INNER JOIN
DOCUMENT ON PATENT.NOMDOK = DOCUMENT.NOMDOK INNER JOIN
VLADELEC ON PATENT.TABNOM = VLADELEC.TABNOM
)
либо добавить в FROM еще одну таблицу
...
FROM
PATENT patent2
связать ее с остальными таблицами аналогично PATENT и добавить
HAVING
PATENT.TabNom = MAX (patent2.TabNom)
savv (2005-05-20 10:09:00) [32]А в SQL никак ? Мне нужно выбрать те записи значение некоторых полей встречаются чаще всех. Вот мой запрос:
SELECT Count(*), patent.TabNom
FROM PATENT INNER JOIN
OBJECT ON PATENT.KODOBJECT = OBJECT.KODOBJECT INNER JOIN
DOCUMENT ON PATENT.NOMDOK = DOCUMENT.NOMDOK INNER JOIN
VLADELEC ON PATENT.TABNOM = VLADELEC.TABNOM
group by patent.TabNom
order by patent.TabNom desc
Виталий Панасенко (2005-05-20 10:06:00) [33]АДО такое умеет.. И с парадоксом - тоже
Max Zyuzin (2005-05-20 09:23:00) [34]>savv (20.05.05 08:54)
АФАИК никак. Выбрать только усе, п потом сходить к первой.
Anatoly Podgoretsky (2005-05-20 08:58:00) [35].First