Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Вниз

Ограниченные возможности SQL в BDE...   Найти похожие ветки 

 
KIR   (2003-07-16 17:08) [0]

Народ, работаю с базой Pardox. Подребовалось создать запрос следующего вида:

SELECT
ID
FROM
MYTABLE
WHERE
MAX(DAT) <= :PARAM1
AND

BDE говорит, что "Capability not supported"...

Народ, может подскажете, как же мне все таки выбрать из таблицы все записи с одинаковыми ID, где поле DAT не превышает значение определенного параметра?


 
MsGuns   (2003-07-16 17:11) [1]

Сам запрос не имеет смысл. Причем здесь BDE ?


 
KIR   (2003-07-16 17:22) [2]

Я грешил на BDE из-за фразы "Capability not supported"


 
MsGuns   (2003-07-16 17:36) [3]

Ну да, почти по Райкину:
Сунул верблюду гайку - не жрет ! Скотина, а рррразбирается ;)


 
Johnmen   (2003-07-16 17:42) [4]

Забавно... :)
SQL подучить бы...


 
KIR   (2003-07-16 17:43) [5]

Ну да... :)), так все таки, может быть присоветуете, как проблему-то рещить?


 
Johnmen   (2003-07-16 17:53) [6]

>...выбрать из таблицы все записи с одинаковыми ID...

Что это значит ?

>.., где поле DAT не превышает значение определенного параметра?

WHERE
DAT <= :PARAM1


 
MsGuns   (2003-07-16 17:55) [7]

Так а в чем трабла-то ? В гайке или верблюде ? Что из чего надо получить ?
Если верблюд, то из KIR © (16.07.03 17:08) не понятно ничегошеньки.


 
KIR   (2003-07-16 18:01) [8]

Поясню: например в таблице 5 записей с ID 123. Для простоты предположим что этим записям соответсвует поле DAT со значениями 1,2,3,4,5. В моем запросе я передаю параметру значение, скажем, три. Получу три записи, так? А мне требуется следующее: если есть хоть одна запись, у которой ID зоть и 123, но значение поля DAT больше параметра, то ни одна запись с ID 123 не попадает в НД.

Я, кстати, эту задачу решил... интересно было бы посмотреть на Ваши варинты


 
Sandman25   (2003-07-16 18:08) [9]

select *
from mytable
where id = 123
and not exists
(select *
from mytable
where id = 123
and dat > 3
)


 
Sandman25   (2003-07-16 18:11) [10]

PS. Странная структура базы. ID обычно называют уникальное поле.


 
KIR   (2003-07-16 18:14) [11]

На самом деле это не ID, а PATID - внешний ключ и вообще запрос гораздо сложнее (2 листа А4 10 шрифтом). Я просто для простоты примера назвал его ID.

А поводу решения я примерно так и сделал, только я применил не not exests, а WHERE ID NOT IN и т.д., кстати есть ли разница...


 
Sandman25   (2003-07-16 18:18) [12]

>поводу решения я примерно так и сделал, только я применил не not exests, а WHERE ID NOT IN и т.д., кстати есть ли разница...

Напишите Ваш вариант, чтобы я мог ответить.


 
KIR   (2003-07-16 18:23) [13]

Вот же мой вариант в предыдущем сообщении Вы использовали NOT EXISTS, а я WHERE ID NOT IN

select *
from mytable
where id = 123
and id not in
(select *
from mytable
where id = 123
and dat > 3
)


 
Sandman25   (2003-07-16 18:27) [14]

Мой вариант быстрее. Он устанавливает только наличие самого факта выполнения подзапроса (независящего от текущей строки, как и Ваш подзапрос), Ваш же запрос заставляет сравнивать текущий id, причем с каждым id, возвращаемым подзапросом.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
14-20754
Всеволод Соловьёв
2003-07-21 09:43
2003.08.07
&from= тупизна немереная


1-20599
Pauk
2003-07-24 14:03
2003.08.07
Popup


14-20805
Феликс
2003-07-22 16:30
2003.08.07
Как же этот сайт называется?


1-20590
SergeySEM
2003-07-24 13:15
2003.08.07
RichEdit Розмер буфера


1-20521
GreySerg
2003-07-25 18:41
2003.08.07
Создание коллекции объектов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский