Рассчет количество дней больничного в месяце

Annar60

Добрый день!Помогите, пожалуйста. Необходимо подсчитать количество дней, которое человек провел на больничном. Если не более, должно быть 0. Запрос qBolezn считает только количество дней, как сделать так, чтобы нули выводились? cкачать
11 ответов

Annar60

2003 формат нужен. чтобы каждый мог помочь


Annar60

навскид. проблемы с NULL ? тогда:
select nz(count(*),0) .... from .... where ....
-- count(*) - или как у вас сделано чтобы считало. но обернуть в NZ( ... , 0)


Annar60

навскид. проблемы с NULL ? тогда: <pre class="prettyprint linenums">select nz(count(*),0) .... from .... where .... -- count(*) - или как у вас сделано чтобы считало. но обернуть в NZ( ... , 0) </pre>
Там, к сожалению, не всё так просто(Прилагаю базу в 2003 формате. cкачать


Annar60

Annar60,
SELECT Сотрудник.Налог№,
<span>nz</span><span>(</span><span>iif</span><span>(</span><span>month</span><span>(</span>ДатаДО<span>)</span>>месяц<span>,</span> <span>day</span><span>(</span><span>dateserial</span><span>(</span><span>year</span><span>(</span>ДатаДО<span>),</span> <span>month</span><span>(</span>месяц<span>)+</span>1<span>,</span> 0<span>)),</span> <span>day</span><span>(</span>ДатаДО<span>))</span> <span>-</span> <span>iif</span><span>(</span><span>month</span><span>(</span>ДатаС<span>)</span><месяц<span>,</span> 1<span>,</span><span>day</span><span>(</span>ДатаС<span>))</span> <span>+</span>1<span>,</span> 0<span>)</span> <span>AS</span> kolb
FROM Сотрудник LEFT JOIN Болезнь ON (Сотрудник.Налог№ = Болезнь.Налог№ and ([месяц] Between Month([ДатаС]) And Month([ДатаДО])))
имхо, вот это определение дней болезни в месяце - фигню какую-то выводит


Annar60

qwerty112, а как надо?


Annar60

так у меня вот такой запрос, там не nz, а day
SELECT Налог№, iif(month(ДатаДО)>месяц, day(dateserial(year(ДатаДО), month(месяц)+1, 0)), day(ДатаДО)) - iif(month(ДатаС)<месяц, 1,day(ДатаС)) +1 AS kolbFROM БолезньWHERE [месяц] between month(ДатаС) and month(ДатаДО)


Annar60

но сути не меняет, можно и с nz


Annar60

qwerty112, а как надо?
вы запросик-то, что я приложил - выполнили ? результат видите ? там ваши 0 - есть,а вот -(минус)18 дней болезни (это при месяц=5) - таки-да, прикольно :)


Annar60

qwerty112, спасибо большое! что-то слона не заприметила( а с отрицательным количеством - это да, косяк)) исправила)


Annar60

А можно этот запрос переделать, чтобы считались больничные по всем сотрудникам за каждый месяц? чтобы такая большая таблица получилась по месяцам разбитая. А то мне еще годовую зп надо посчитать, как ни кручу, не получается запрос у самой(


Annar60

А можно этот запрос переделать, чтобы считались больничные по всем сотрудникам за каждый месяц? чтобы такая большая таблица получилась по месяцам разбитая. А то мне еще годовую зп надо посчитать, как ни кручу, не получается запрос у самой(
1для этого - "годовую зп надо посчитать" - "такая большая таблица получилась по месяцам разбитая" - нафиг не нужна !!забудьте вы про этот Эксель, "что б он был здоров" !2что б лучше забывалось - таки потыкайтесь в свою "такая большая таблица получилась по месяцам разбитая",(вложение - запрос Q1)3Аня, а фотки то в профиле - нету ... это непорядок, даа ... :) cкачать