Главная страница
    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.46 MB
Время: 0.031 c
15-1210154445
Desp
2008-05-07 14:00
2008.06.22
корпоративная почта


2-1212041779
Smile
2008-05-29 10:16
2008.06.22
TFooClass


15-1210222532
vajo
2008-05-08 08:55
2008.06.22
Не запускается WinXP на ноутбуке.


15-1210213823
Slider007
2008-05-08 06:30
2008.06.22
С днем рождения ! 8 мая 2008 четверг


15-1210177626
Александр Иванов
2008-05-07 20:27
2008.06.22
Вложенные Repeater ы в ASP.NET





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский