Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Проблема запроса с таблицы Paradox с помощью BDE LocalSQL   Найти похожие ветки 

 
Vovan69   (2006-11-02 19:09) [0]

Есть таблица Paradox с полями D2, D1 типа TDate.

Следующий запрос работает неправильно:
SELECT * FROM Tablica
WHERE (D2-D1+1) = 5

т.е. выдаются записи, для которых D2-D1+1 = 7,6,8,...

Как добиться правильного вычитания между датами в запросе?


 
Anatoly Podgoretsky ©   (2006-11-02 19:22) [1]

> Vovan69  (02.11.2006 19:09:00)  [0]

В Парадоксе нет полей типа TDate


 
Vovan69   (2006-11-02 19:27) [2]

Anatoly Podgoretsky ©   (02.11.06 19:22) [1]

Хорошо - Date.
Как добиться правильной работы запроса?


 
Desdechado ©   (2006-11-02 20:19) [3]

> WHERE (D2-D1+1) = 5
> т.е. выдаются записи, для которых D2-D1+1 = 7,6,8,...
я че-то не понял, идет проверка на равенство пяти, а выдаются больше пяти?
код давай


 
Vovan69   (2006-11-03 10:11) [4]

Desdechado ©   (02.11.06 20:19) [3]

Вот весь код:

SELECT * FROM Tablica
WHERE (D2-D1+1) = 5

выдаются записи, для которых D2-D1+1 = 5 и D2-D1+1 <>5

P.S.: Выход конечно есть:) Например, добавить в таблицу поле Days (Integer), заполнить его значением D2-D1+1 и делать запросы по полю Days на здоровье. Но если нельзя добавлять поля в таблицу, что тогда делать с простыми арифметическими операциями над полями типа даты в тексте запроса??


 
Anatoly Podgoretsky ©   (2006-11-03 10:19) [5]

> Vovan69  (03.11.2006 10:11:04)  [4]

Сменить СУБД на ту, в которой правильно работает оператор сравнения


 
Vovan69   (2006-11-03 10:24) [6]

Anatoly Podgoretsky ©   (03.11.06 10:19) [5]

:))
Других идей нет?


 
ЮЮ ©   (2006-11-03 10:26) [7]

Anatoly Podgoretsky ©   (03.11.06 10:19) [5]

Типа, для парадокса (D2-D1+1) = 5 истинно для любых значений D2 и D1
Все, конечно, знают о твоей нелюбви к Парадоксу, но не до такой же степени :)


 
Anatoly Podgoretsky ©   (2006-11-03 10:31) [8]

> ЮЮ  (03.11.2006 10:26:07)  [7]

Истинно для любых значений не равных 5
Может и не люблю, но автор одназначно вешает нам не шею мучные изделия.


 
ЮЮ ©   (2006-11-03 10:33) [9]

Выполни запрос в SQL Explorer.
Ибо в программе ты можешь наблюдать результаты далеко не того запроса :)


 
ЮЮ ©   (2006-11-03 10:37) [10]

SELECT
 b.Data - o.Data Days, o.*, b.*
FROM
 Bills b
 JOIN Orders o ON b.OrderId = o.Id
WHERE
 b.Data - o.Data = 5

в SQL Explorer вернул только с Days = 5


 
ASoft   (2006-11-03 10:38) [11]

WHERE (trunc(D2)-(trunc(D1)+1) = 5


 
Anatoly Podgoretsky ©   (2006-11-03 10:40) [12]

> ЮЮ  (03.11.2006 10:37:10)  [10]

> b.Data - o.Data = 5
> в SQL Explorer вернул только с Days = 5

Это насколько надо отвратительно написать интерпритатор, что фундаментальное
правило математики работало по еврейским правилам. Не верю я в это.


 
Anatoly Podgoretsky ©   (2006-11-03 10:42) [13]

> ASoft  (03.11.2006 10:38:11)  [11]

Да какая разница trunc или нет, он же утверждает, что запрос возвращает
записи не равные точно пяти. Или дурдом или тайная бухгалтерия.


 
ЮЮ ©   (2006-11-03 10:46) [14]

это только у евреев 39005.0 - 39000.0 = 5 ?


 
ASoft   (2006-11-03 10:58) [15]

WHERE (D2-D1)+1 = 5


 
Anatoly Podgoretsky ©   (2006-11-03 13:26) [16]

> ЮЮ  (03.11.2006 10:46:14)  [14]

Конечно, они не причем, только как авторы данной бухгалтерии.


 
Desdechado ©   (2006-11-03 13:35) [17]

WHERE D2-D1 = 4
зачем сбивать с толку преобразование типов добавлением левых чисел, если можно без них обойтись?


 
Anatoly Podgoretsky ©   (2006-11-03 13:40) [18]

Теперь с 4 не работает.


 
ASoft   (2006-11-03 16:01) [19]

млин, специально проверил, все работает...и 4 и 5, запрос выбрал то что надо. Чудеса...
мож я в сабж не врубился?


 
Asail   (2006-11-03 23:59) [20]


> ASoft   (03.11.06 16:01) [19]

Ага, я тоже проверил - работает. Что-то афтор не договаривает ...



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

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.038 c
1-1159992500
Альберт
2006-10-05 00:08
2006.11.19
TWebBrowser с собственными настройками


15-1161802883
Real
2006-10-25 23:01
2006.11.19
MySQL - ПО для управления или дайте скачать MySQLCC


2-1162419772
jTommy
2006-11-02 01:22
2006.11.19
Получть из пути с короткими именами путь с длинными именами


3-1158326339
-=Tiger=-
2006-09-15 17:18
2006.11.19
Перемещение записей в ADOTable


15-1162310042
Cyrax
2006-10-31 18:54
2006.11.19
Кодинг COM-порта на Win32API