Главная страница
    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.013 c
1-20513
elf
2003-07-25 18:12
2003.08.07
Как получить Name и Caption компонента на котором находится мышь


14-20722
SF
2003-07-23 17:36
2003.08.07
Технология Web Broker и Web-сервер


3-20409
DBDev
2003-07-16 12:42
2003.08.07
Помогите! OLE Excel!


1-20535
Evg12
2003-07-26 16:00
2003.08.07
Форма с автосайзом


7-20827
h-sargis
2003-05-27 20:30
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский