Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналогия TOP 1 [Paradox]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо