Topic: Вычислительное поле

Ув. Дмитрий и пользователи.
Есть такое вычислительное поле:
Case
When (julianday(outcomeDate) - julianday(incomeDate)) < 31   
THEN (julianday(outcomeDate) - julianday(incomeDate))
When 31 < (julianday(outcomeDate) - julianday(incomeDate)) < 365   
THEN ((julianday(outcomeDate) - julianday(incomeDate)))/30
When (julianday(outcomeDate) - julianday(incomeDate)) > 365   
THEN ((julianday(outcomeDate) - julianday(incomeDate)))/12
END

В результате хочу узнать сколько проработал работник в предприятии. Т.е. если меньше месяца то в гриде должно быть например 21 дней. Если больше 31 то уже в месяцах с округлением. Также в годах. Помогите с реализацией.

Кстати это выч. поле (julianday(outcomeDate) - julianday(incomeDate)) дает разницу в днях, но только цифры. Например:

Иванов        01.10.2016        30.10.2016    30

А как еще дописать какую нибудь текст? Например:
Иванов        01.10.2016        30.10.2016    30 дней

Re: Вычислительное поле

попробуйте так

CASE

WHEN (julianday(outcomeDate) - julianday(incomeDate)) < 31
THEN CAST(julianday(outcomeDate) - julianday(incomeDate) as INTEGER) || ' дней'

WHEN ((julianday(outcomeDate) - julianday(incomeDate)) >=31) AND ((julianday(outcomeDate) - julianday(incomeDate)) <=365)
THEN CAST((julianday(outcomeDate) - julianday(incomeDate))/30 as INTEGER ) || ' месяцев'

WHEN (julianday(outcomeDate) - julianday(incomeDate)) > 365
THEN CAST((julianday(outcomeDate) - julianday(incomeDate)) / 365 as INTEGER) || ' лет'

END
Dmitry.

Re: Вычислительное поле

огромное спасибо, очень помогло