![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналогия TOP 1 [Paradox]
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]
Да согласен сам недосмотрел. Но смысл был ясен...