Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 16:32   #1
DS75
Пользователь
 
Аватар для DS75
 
Регистрация: 20.04.2009
Сообщений: 50
По умолчанию SQL подзапрос без сравнения, возможно ?

Здравствуйте ! Не могу составить запрос.
Нужно чтобы запрос выполнял следующие действия:
1. Округлить до наименьшего целого значения, полученного делением всех столбцов Vsego и Norma из таблицы Calc.
2. Выборать строку в которой это округленное значение наименьшее и столбец Cod_bluda равен 4.

Делаю так, но понимаю что после WHERE должен быть оператор сравнения.. Но как его поставить если в основном запросе он не упоминается ? Есть ли другой способ ?

Код:
ADOQuery6.SQL.Add('SELECT MIN FROM Calc WHERE (SELECT FLOOR(Vsego/Norma) FROM Calc WHERE Cod_bluda = 4)');
DS75 вне форума Ответить с цитированием
Старый 02.06.2009, 16:58   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

так выбираем минимальное из всех округленных
Код:
SELECT min(FLOOR(Vsego/Norma))
FROM Calc 
WHERE Cod_bluda = 4
а так можно достать всю строку

Код:
SELECT * 
FROM Calc
where 0=0
   and FLOOR(Vsego/Norma) = (
                SELECT min(FLOOR(Vsego/Norma))
                FROM Calc 
                WHERE Cod_bluda = 4)
   and Cod_bluda = 4
soleil@mmc вне форума Ответить с цитированием
Старый 02.06.2009, 17:34   #3
DS75
Пользователь
 
Аватар для DS75
 
Регистрация: 20.04.2009
Сообщений: 50
По умолчанию

К сожалению в обоих случаях предложенных Вами выскакивает ошибка "Неопределенная функция "FLOOR" в выражении."
Может быть нельзя ставить сразу обе функции MIN и FLOOR после одного SELECT. Я поэтому хотел вторую функцию в подзапросе реализовать !
DS75 вне форума Ответить с цитированием
Старый 02.06.2009, 19:33   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ну дык может у тебя и нет такой функи?! (я же не в курсе под чем ты этот запрос выполняешь)
попробуй такой запрос выполнить
Код:
SELECT FLOOR(Vsego/Norma)
FROM Calc
soleil@mmc вне форума Ответить с цитированием
Старый 02.06.2009, 20:10   #5
DS75
Пользователь
 
Аватар для DS75
 
Регистрация: 20.04.2009
Сообщений: 50
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
ну дык может у тебя и нет такой функи?! (я же не в курсе под чем ты этот запрос выполняешь)
Не понял, я думал что FLOOR функция округления до наименьшего целого, предусмотренная sql. В программе мною функция FLOOR не создавалась.
Почему компилятор не определяет ее как стандартную, а предполагает что она создана мною никак не пойму. И обойти не получается !

Delphi 6, MS Access 2003
DS75 вне форума Ответить с цитированием
Старый 02.06.2009, 23:00   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

это же эксесс
не каждая субд сертифицировалась на стандарты и уж тем более не каждая на высший уровень
так что ищи еще варианты
soleil@mmc вне форума Ответить с цитированием
Старый 03.06.2009, 06:47   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вместо FLOOR() напишите INT()
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.06.2009, 12:32   #8
DS75
Пользователь
 
Аватар для DS75
 
Регистрация: 20.04.2009
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вместо FLOOR() напишите INT()
Спасибо большое ! При замене на INT все заработало на "УРА" !
DS75 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрицы(функция сравнения). С++ Anaraida Помощь студентам 3 24.05.2009 18:01
Поломал голову над SQL запросом из 5-ти таблиц. Возможно ли это? semnily SQL, базы данных 1 06.04.2009 12:24
Алгоритм сравнения f3nix Общие вопросы Delphi 1 16.02.2008 11:12
проблему возможно решить с помощью хранимой процедуры на SQL? yulia БД в Delphi 8 24.05.2007 20:25