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 выбрать первую запись.


savv   (2005-05-20 16:29:00) [1]

Max Zyuzin [34]
> сходить на первую запись


Возможно ;)


Max Zyuzin   (2005-05-20 16:18:00) [2]

Гм... :) Короче боролись, боролись... в общем я кроме как сделать выборку а потом сходить на первую запись вариянтов невижу :)


Johnmen   (2005-05-20 15:40:00) [3]

>savv   (20.05.05 15:32) [32]

Шутка. Предикаты ALL, ANY, SOME и т.д. не поддерживаются.
Так что на [29] не рассчитывай.


savv   (2005-05-20 15:32:00) [4]

>Johnmen [31]
>Он работает, но скрытно, незаметно для тебя.
>:))))))))))))

Это уж точно :)
Интересно как же его раскрыть?


Johnmen   (2005-05-20 15:13:00) [5]

Он работает, но скрытно, незаметно для тебя.
:))))))))))))


savv   (2005-05-20 14:37:00) [6]

>Max Zyuzin [29]

Может быть ты и прав, но он все равно не работает


Max Zyuzin   (2005-05-20 14:29:00) [7]

SELECT Count(*),  q1.TabNom
FROM         PATENT INNER JOIN
                    OBJECT ON PATENT.KODOBJECT = OBJECT.KODOBJECT INNER JOIN
                    DOCUMENT ON PATENT.NOMDOK = DOCUMENT.NOMDOK INNER JOIN
                    VLADELEC q1 ON PATENT.TABNOM = q1.TABNOM
group by q1.TabNom
HAVING count(q1.TabNom) >= ALL (SELECT count(q2.TabNom) FROM PATENT INNER JOIN
                                            OBJECT ON PATENT.KODOBJECT = OBJECT.KODOBJECT INNER JOIN
                                           DOCUMENT ON PATENT.NOMDOK = DOCUMENT.NOMDOK INNER JOIN
                                          VLADELEC q2 ON PATENT.TABNOM = q2.TABNOM                                          GROUP BY q2.TabNom)

Если я нигде не ошибся


savv   (2005-05-20 14:22:00) [8]

>Max Zyuzin [27]

Что ты имеешь в виду ?


Max Zyuzin   (2005-05-20 14:04:00) [9]

>savv   (20.05.05 14:00) [26]
Внимательно посмотри на Nikolay M. ©   (20.05.05 11:25) [21]
И найди 10 отличий в использовании...


savv   (2005-05-20 14:00:00) [10]

>> q1, q2

>Что за бред?

тоже что и c2, c


Nikolay M.   (2005-05-20 13:46:00) [11]


> q1, q2

Что за бред?


savv   (2005-05-20 13:43:00) [12]

Попробовал:
SELECT Count(*),  q1.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 q1
group by q1.TabNom
HAVING count(q1.TabNom) >= ALL (SELECT count(q2.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 q2
                                           GROUP BY q2.TabNom)

Не выходит, он не понимает формальные имена q1, q2


Nikolay M.   (2005-05-20 13:37:00) [13]


> savv   (20.05.05 13:32) [22]
> Значит нет способа ?

[21] попробуй под свой запрос переделать.


savv   (2005-05-20 13:32:00) [14]

Значит нет способа ?


Nikolay M.   (2005-05-20 11:25:00) [15]

Кстати, вот так по теории будут выбираться самые частые записи. Но SQL Explorer на базе DBDEMOS дает AV :(

SELECT count(*), c.city
FROM clients c
GROUP BY c.city
HAVING count(c.city) >= ALL (SELECT count(c2.city) FROM clients c2 GROUP BY c2.city)


Nikolay M.   (2005-05-20 11:15:00) [16]


> lexer ©   (20.05.05 10:55) [19]
> а где она всё-таки "прокатит"?

MS SQL.


lexer   (2005-05-20 10:55:00) [17]

[17] Nikolay M. ©   (20.05.05 10:50)
а где она всё-таки "прокатит"?


savv   (2005-05-20 10:53:00) [18]

>Если в парадоксе прокатит конструкция
>FROM
> SELECT MAX (q.cnt) FROM (SELECT count(*) AS cnt, TabNom >FROM...) q
>то можно и одним запросом обойтись

В том то и дело что не катит такая конструкция


Nikolay M.   (2005-05-20 10:50:00) [19]


> Johnmen ©   (20.05.05 10:38) [15]
> Не, первая не самая частая. Вот так будет самая:
> ORDER BY 1 DESC

Угу. Конечно, тут имеется разногласие с запросом в [0] и пожеланием в [4]. Но, имхо, ему нужен максимум все-таки по count.


> lexer ©   (20.05.05 10:36) [13]
> согласен, одним запросом ИМХО это не реализовать, надо делать
> или предсталение/процедурку, из которых брать макс, или
> доставать все записи в приложение и там отбирать.

Если в парадоксе прокатит конструкция
FROM
 SELECT MAX (q.cnt) FROM (SELECT count(*) AS cnt, TabNom FROM...) q
то можно и одним запросом обойтись


Max Zyuzin   (2005-05-20 10:43:00) [20]

>Johnmen ©   (20.05.05 10:38) [15]
Да согласен сам недосмотрел. Но смысл был ясен...


Страницы:   1 2

Наверх

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