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

Вниз

SQL запрос   Найти похожие ветки 

 
Ruslan.   (2003-04-16 19:44) [0]

Привет мастера!
Очень нуждаюсь в вашей помощи.
Ниже приведен запрос, в 3-ей строчке считается стаж работника,
Date_in-дата поступления на работу
Date_Out-дата увольнения.
Вопрос: как можно сделать так чтобы если поле «дата увольнения» = NULL то Date_in отнималась от текущее даты (TODAY) т.е. если Date_Out<>null выполняется DATE_OUT-DATE_IN, иначе ‘TODAY’-DATE_IN. Возможно ли такое вообще провернуть?
Спасибо.

1)select REGNOM,FAMILIYA,link,
2)count(FAMILIYA) as KOL_DOLGNOST,
3)CAST(SUM(((DATE_OUT-DATE_IN)/365))-0.5 as integer) as stag,
4)CAST((("TODAY"-ANKETA3)/365)-0.5 as integer)
5)from reestradv JOIN anketa on
6)ANKETA.LINK=REESTRADV.CODE
7)GROUP BY ANKETA.LINK,reestradv.code,reestradv.regnom,
8)reestradv.FAMILIYA,anketa3


 
Oops ©   (2003-04-16 20:36) [1]

Может есть такая возможность как в других языках (java, etc.):
(DATE_OUT==NUL) ? TODAY : DATE_OUT

тоесть подставить
XXXXX = (DATE_OUT==NUL) ? TODAY : DATE_OUT-DATE_IN)

CAST(SUM(((XXXXX-DATE_IN)/365))-0.5 as integer) as stag


 
Oops ©   (2003-04-16 20:38) [2]

сори, поправочка
XXXXX = (DATE_OUT==NULL) ? TODAY : DATE_OUT


 
MsGuns ©   (2003-04-16 21:26) [3]

Делается путем соединения двух запросов (UNION), в первом из которых доп.проверка
WHERE ... AND (DATE_OUT is not null)...,
а во втором
WHERE ... AND (DATE_OUT is null)...,


 
Ruslan.   (2003-04-17 17:25) [4]

Спасибо все работает!
У меня еще два вопроса:
Можно ли сгруппировать результаты этих двух запросов(UNION)?
И еще один вопрос: есть ли в InterBase аналог функции CASE WHEN…
или DECODE…

select REGNOM,LINK,FAMILIYA,
CAST(SUM(((DATE_OUT-DATE_IN)/365))-0.5 as integer) as stag,
CAST((("TODAY"-ANKETA3)/365)-0.5 as integer)
from reestradv JOIN anketa on
ANKETA.LINK=REESTRADV.CODE
WHERE DATE_OUT IS NOT NULL
GROUP BY ANKETA.LINK,reestradv.code,reestradv.regnom,
reestradv.FAMILIYA,anketa3
UNION
select REGNOM,LINK,FAMILIYA,
CAST(SUM((("TODAY"-DATE_IN)/365))-0.5 as integer) as stag,
CAST((("TODAY"-ANKETA3)/365)-0.5 as integer)
from reestradv JOIN anketa on
ANKETA.LINK=REESTRADV.CODE
WHERE DATE_OUT IS NULL
GROUP BY ANKETA.LINK,reestradv.code,reestradv.regnom,
reestradv.FAMILIYA,anketa3


 
Verg ©   (2003-04-17 17:50) [5]


> есть ли в InterBase аналог функции CASE WHEN…


Firebird 1.5

http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1050586675:76245&page=ibp_download#150



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
6-23251
BangoBango
2003-03-12 15:29
2003.05.08
Госпада!!! Возможно кто нибудь из Вас знает , как из TImage...


1-23169
IronHawk
2003-04-24 15:28
2003.05.08
Приветствую Мастеров! Как получит Handle кнопки в ToolBar-e...


11-23051
Alexander
2002-08-01 12:02
2003.05.08
Пытаюсь нарисовать главную иконку приложения.


3-22917
aw1
2003-04-19 09:11
2003.05.08
Можно увидеть чей-нибудь xinetd.conf с сервера для FB или IB?


14-23377
vopros
2003-04-21 17:36
2003.05.08
Возьму талантливую девушку на содержание