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

Вниз

Сравнение дат в InterBase   Найти похожие ветки 

 
Андрей Пл   (2008-01-15 11:54) [0]

Здравствуйте я недавно только начал работать с InterBase
Меня интересует вопрос как выполнит следующий запрос без ошибки

SELECT  BRIEFCASE.*,
       ibec_IIF(openorder < CAST("01.01.2008" AS date),100, pz100)   as pz
FROM BRIEFCASE


где openorder типа дата
     pz100 числогого типа
и являються полями таблицы BRIEFCASE

мне кажеться что основная ошибка в месте там где я сравниваю даты (openorder < CAST("01.01.2008" AS date)

Заранее спасибо


 
Desdechado ©   (2008-01-15 12:31) [1]

Вместо такой фигни, лучше сделай:
1. используй параметры, а не строковое представление дат
2. вместо iif используй конструкцию UNION ALL


 
Андрей Пл   (2008-01-15 13:01) [2]

пример приведи если не сложно!


 
Desdechado ©   (2008-01-15 13:51) [3]

select tbl.a from tbl where ddd < :P1
union all
select tbl.a + 10 from tbl where ddd >= :P2


 
Андрей Пл   (2008-01-15 14:45) [4]


> Desdechado ©   (15.01.08 13:51) [3]

мне по ряду причин не подходит такой вариант.
может  кто то подскажет как мне обеспечить получение того или иного значения в селекте в зависимости от выполнения условия условия,
а именно мне надо выводить в колонку или просто значение поля pz100 если openorder < 1.01.2008 или произведение pz100 * "другое поле"  если  openorder >= 1.01.2008


 
Sergey13 ©   (2008-01-15 15:02) [5]

> [4] Андрей Пл   (15.01.08 14:45)

ИМХО, для такого случая лучше ХП написать.


 
Desdechado ©   (2008-01-15 16:02) [6]

> мне по ряду причин не подходит такой вариант.
Слова. Причин пока не углядел.


 
Andrey ©   (2008-01-15 16:27) [7]

Ну если аж по целому ряду причин... (http://sql.ru/forum/actualthread.aspx?tid=514715)
Можно еще написать хранимую процедуру... можно удф... они в IB5 были )
Но для решения такой проблемы это всё проктология. Union all верное решение, но я ж забыл, у афтара ведь целый ряд причин...


 
Евгений Р.   (2008-01-17 14:45) [8]

select tbl.a,pz100
from tbl where ddd < :P1
union all
select tbl.a + 10, pz100 * "другое поле"
from tbl where ddd >= :P2



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
3-1199904124
hero
2008-01-09 21:42
2008.06.22
Уважаемые мастера! Помогите восстановить базу данных!!!!!!


2-1212039243
brother
2008-05-29 09:34
2008.06.22
имеет ли смысл задержка?


2-1211901250
Антон
2008-05-27 19:14
2008.06.22
Добавления даты в базу данных


1-1194870400
Alex_Ne
2007-11-12 15:26
2008.06.22
Определение адреса метода изнутри


2-1211998877
deled
2008-05-28 22:21
2008.06.22
узнать цвет пикселя в Image